JavaScript快速入門-ECMAScript基礎語法

1、JavaScript引入方式

一、行內式

<script>html

  alert(123);python

</script>函數

二、外鏈式

<script src='custom.js'></script>性能

  

2、JavaScript基礎語法

一、變量

a、變量區分大小寫;spa

b、JavaScript中變量是弱類型,即無需聲明變量的具體類型,好比int、string等。指針

c、變量定義code

  • 定義單個變量:var a=123;
  • 一行聲明多個變量var a=123,b='test';
  • 注意定義時用關鍵字:var。若是不用var,則爲全局變量。

d、變量命名,首字符只能是字母,下劃線,$美圓符 三選一htm

e、變量命名規則對象

Camel 標記法
首字母是小寫的,接下來的字母都以大寫字符開頭。例如:
var myTestValue = 0, mySecondValue = "hi";
Pascal 標記法
首字母是大寫的,接下來的字母都以大寫字符開頭。例如:
Var MyTestValue = 0, MySecondValue = "hi";
匈牙利類型標記法
在以 Pascal 標記法命名的變量前附加一個小寫字母(或小寫字母序列),說明該變量的類型。例如,i 表示整數,s 表示字符串,以下所示「
Var iMyTestValue = 0, sMySecondValue = "hi";

  

二、基礎規範

  • a、每行結束能夠不加分號. 沒有分號會以換行符做爲每行的結束,最好加分號;
  • b、註釋 支持多行註釋和單行註釋: /* */  //
  • c、{}做爲代碼塊

 

三、關鍵字

ECMA-262 描述了一組具備特定用途的關鍵字。這些關鍵字可用於表示控制語句的開始或結束,或者用於執行特定操做等。按照規則,關鍵字也是語言保留的,不能用做標識符。如下就是ECMAScript的所有關鍵字(帶*號上標的是第5 版新增的關鍵字):blog

 

四、保留字

ECMA-262 還描述了另一組不能用做標識符的保留字。儘管保留字在這門語言中尚未任何特定的用途。但它們有可能在未來被用做關鍵字。如下是ECMA-262 第3 版定義的所有保留字:

 在嚴格模式下,第5 版還對如下保留字施加了限制:

 

五、值

在 ECMAScript 中,變量能夠存在兩種類型的值,即原始值和引用值。相似python裏面的傳值和傳引用。一個是內存地址、一個是索引地址或指針。

原始值

存儲在棧(stack)中的簡單數據段,也就是說,它們的值直接存儲在變量訪問的位置。

引用值

存儲在堆(heap)中的對象,也就是說,存儲在變量處的值是一個指針(point),指向存儲對象的內存處。

若是一個值是引用類型的,那麼它的存儲空間將從堆中分配。因爲引用值的大小會改變,因此不能把它放在棧中,不然會下降變量查尋的速度。相反,放在變量的棧空間中的值是該對象存儲在堆中的地址。地址的大小是固定的,因此把它存儲在棧中對變量性能無任何負面影響。以下圖所示:

 

六、原始類型

ECMAScript 有 5 種原始類型(primitive type),即 Undefined、Null、Boolean、Number 和 String。

a、Undefined:未定義的。類型是Undefined,值是undefined。

  • 好比定義變量:var a。定義一個變量,並不給他賦值,這時它的值就是undefined。
  • 若是使用一個未定義的變量b,它也是Undefined類型,值是undefined 。
  • 一個函數無明確返回值時,它也是Undefined類型。

b、Null:空。類型是Null,值是null。值 undefined 其實是從值 null 派生來的,所以 ECMAScript 把它們定義爲相等的。

  • 注意:null=undefined【字面量相等,就是值相等】。儘管這兩個值相等,但它們的含義不一樣。undefined 是聲明瞭變量但未對其初始化時賦予該變量的值,null 則用於表示還沒有存在的對象。若是函數或方法要返回的是對象,找不到該對象時,返回的一般是 null。

c、Boolean 布爾類型

  • true和false。字面量爲0和1。

d、Number類型

  • 一、整數   var a=123;
  • 二、浮點數 var b=2.123;
  • 三、八進制數 var c=0123;
  • 四、十六進制數  var d=0x123;
  • 五、特殊的Number
    • Number.MAX_VALUE 和 Number.MIN_VALUE表示數字的邊界,最大值和最小值。
    • NaN:當類型轉換失敗時就會出現這種數據類型。好比當一個字符串轉換爲數字時,就是出現。(Not a Number。)
    • 因爲NaN字面意思是:不是一個數字,因此NaN不用於算術運算。
    • 同時,NaN!=NaN。而咱們通常使用isNaN()函數,好比isNaN(‘test’)輸出true。

e、String 字符串類型

一、由Unicode字符、數字、標點符號組成的序列
二、字符串由單引號或雙引號括起
三、字符串中部分特殊字符必須加上轉義線\。經常使用的轉義字符 \n:換行  \':單引號   \":雙引號  \\:右劃線

七、類型轉換

JavaScript是鬆散類型的語言。當變量被賦值時才肯定數據類型,這一點和python同樣。可是比python更鬆散。

好比:

var a=123;

var b='123';

a+b 的結果爲'123123'

  • 數字 + 字符串:數字轉換爲字符串
  • 數字 + 布爾值:true轉換爲1,false轉換爲0
  • 字符串 + 布爾值:布爾值轉換爲字符串true或false
  • 轉換成字符串:toString()
  • 轉換成數字:parseInt()
  • 轉化成浮點數:parseFloat
  • 強制類型轉換:String()、Boolean()、Number()

八、類型查詢:typeof

typeof(123);  #number

九、引用類型

引用類型一般叫作類(class),也就是說,遇到引用值,所處理的就是對象。相似python中的type類。其實他自己就是一個類。

var o = new Object(); #typeof(o)  object
var oBooleanObject = new Boolean(true);
var oNumberObject = new Number(68);
var oStringObject = new String("hello world");
相關文章
相關標籤/搜索