首頁  >  文章  >  web前端  >  詳解javascript的變數與識別碼_javascript技巧

詳解javascript的變數與識別碼_javascript技巧

WBOY
WBOY原創
2016-05-16 15:22:031413瀏覽

一、變數

  從字面上看,變數是可變的量;從程式設計角度講,變數是用於儲存資料的容器

1.1變數特性
  javascript中的變數是鬆散類型的,可以保存任何類型的資料。由於不存在定義某個變數必須要保存何種資料型別值的規則,變數的值及其資料型別可以在腳本的生命週期內改變 

1.2變數命名
  變數可以任意取名,但必須遵循命名規則:

[1]第一個字元必須是字母、底線或美元符號。其他字元可以是字母、底線、美元符號或數字

//错误示范
 6num //开头不能用数字
 %sum //开头不能用除(_ $)外特殊符号,如(% + /等)
 sum+num //开头中间不能使用除(_ $)外特殊符号,如(% + /等)
  

[2]字元中的字母可以包含拓展的ASCII或Unicode字母字符,也可以使用中文

[3]不能使用關鍵字、保留字、true、false和null

[4]變數對大小寫敏感

[5]標識符應採用小駝峰格式,第一位應該是資料的類型,常見的標識如下:

陣列       a    Array      aItems
布林值          b    Boolean     bIsComplete
浮點數          f    Float       fPrice
函數      fn    Function    fnHandler
整數       i    Integer    iItemCount
物件        o    Object     oDIv1
正規表示式       re    RegExp     reEmailCheck
字串         s    String     sUserName
變數       v    Variant   vAnything     

1.3變數宣告
宣告格式為: var 變數名;

var num;//声明一个变量
var num1,num2;//声明多个变量

  用var運算元定義的變數將成為定義該變數的作用域中的局部變數。若省略var操作符,可以建立一個全域變量,但在嚴格模式下會拋出 ReferenceError錯誤

var num1=1;
num2=2;//在严格模式下会报错
num3;//报错

  如果重新宣告 JavaScript 變量,則變數的值不會遺失

var carname="Volvo";
console.log(carname);//Volvo
var carname;
console.log(carname);//Volvo

1.4聲明提升

  javascript中的變數宣告會提升到所有函數和語句之前,但提升後的變數會傳回undefined,因為只是宣告提升,賦值運算並沒有提升

console.log(myvar); // undefined
var myvar = "local value";
console.log(myvar); // "local value"
 

1.5變數賦值
  使用"="給變數賦值,也就是儲存內容。變數可以在宣告時賦值,但不能有其他操作,如+=、-=等

var num = 5;
//上下是等价的
var num;
num = 5;
var a = 2;//正确
var a += 2;//错误
var a = 2++;//错误,++只能用于变量,不能用于常量

二、識別碼

識別字是指變數、函數、屬性的名字,或是函數的參數 

2.1識別碼命名
  命名規則同變數命名規則,對於不符合命名規則的屬性如border-color應寫為大括號方式[borderColor] 

2.2標識符解析
  標識符解析是沿著作用域鏈一級一級搜尋標識符的過程。搜尋過程總是從作用域鏈的前端開始,然後逐級地向後回溯,直到找到標識符為止。

  [1]如果局部環境中存在同名標識符,就不會使用父環境中的標識符

  [2]如果找不到標識符,表示標識符尚未聲明,通常會導致錯誤發生

  [3]JavaScript引擎在最佳化識別碼查詢方面做得不錯,存取父環境和局部環境的識別碼的時間差異可以忽略不計

var num = 1;
function test(){
 num = 2;
 console.log(num);//2
 console.log(number);//报错
}
test();

以上就是關於javascript的變數與識別字的相關內容,希望對大家的學習有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn