成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【JavaScript】語法

jsyzchen / 1646人閱讀

摘要:注意使用操作符定義的變量將成為定義該變量的作用域中的局部變量,也就是說,在函數(shù)內(nèi)部,用聲明的變量叫局部變量,那么這個變量在函數(shù)退出后就會被銷毀。局部變量報錯如果省略了操作符,就相當(dāng)于定義了一個全局變量,在函數(shù)外部的任何地方都可以訪問到。

2.1 語法

2.1.1 區(qū)分大小寫

JavaScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。比如變量名test和變量名Test代表的是兩個不同的變量。

2.1.2 標(biāo)識符

標(biāo)識符是指變量、函數(shù)、屬性的名字,或函數(shù)的參數(shù)。

標(biāo)識符格式規(guī)則:

第一個字符必須是一個字母、下劃線(_)或一個美元符號($)
其他字符可以是字母、下劃線、美元符號或數(shù)字。
按照慣例,JavaScript標(biāo)識符采用駝峰大小寫格式,也就是第一個字母小寫,剩下的每個有意義的單詞的首字母大寫。

myName

注意:不能把關(guān)鍵字、保留字、true、false和null用作標(biāo)識符。

2.1.3 注釋

單行注釋:

// 單行注釋

多行注釋(/**/):

/*
* 多行注釋,這一行星號非必需
*/

2.1.4 嚴(yán)格模式

ECMAScript 5 引入了嚴(yán)格模式(strict mode)的概念。嚴(yán)格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。

在嚴(yán)格模式下,ECMAScript 3中的一些不確定的行為將得到處理,而且對某些不安全的操作也會拋出錯誤。

可以在整個腳本中啟用嚴(yán)格模式,也可以在函數(shù)內(nèi)的頂部啟用:

"use strict";
function doSomething(){
"use strict";
// 函數(shù)體
}

2.1.5 語句

ECMAScript中的語句以一個分號結(jié)尾;如果省略分號,則由解析器確定語句的結(jié)尾。

強(qiáng)烈建議在可用可不用分號的地方使用分號,因?yàn)榧由戏痔?,可以避免很多意想不到的錯誤,而且也可以放心的使用壓縮工具來壓縮JavaScript腳本。

2.2 關(guān)鍵字和保留字

ECMA-262描述了一組具有特定用途的關(guān)鍵字,這些關(guān)鍵字可用于控制語句的開始或結(jié)束,或者用于執(zhí)行特定操作等,不能用作標(biāo)識符。

break  do  instanceof  typeof
case  else  new  var
catch  finally  return  void
continue  for  switch  while
debugger  function  this  with
default  if  throw  delete
in  try

ECMA-262還描述了一組不能用作標(biāo)識符的保留字:

abstract  enum  int  short
boolean  export  interface  static
byte  extends  long  super
char  final  native  synchronized
class  float  package  throws
const  goto  private  transient
debugger  implements  protected  volatile
double  import  public

如果使用關(guān)鍵字作標(biāo)識符,會導(dǎo)致“Identifier Expected”錯誤。

2.3 變量

ECMAScript的變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)。定義變量時要使用var操作符,后跟變量名。

var name;
注意:使用var操作符定義的變量將成為定義該變量的作用域中的局部變量,也就是說,在函數(shù)內(nèi)部,用var聲明的變量叫局部變量,那么這個變量在函數(shù)退出后就會被銷毀。

function test(){
var name = "tg";  //局部變量
}
test();
console.log(name);  // 報錯

如果省略了var操作符,就相當(dāng)于定義了一個全局變量,在函數(shù)外部的任何地方都可以訪問到。

function test(){
name = "tg";  //局部變量
}
test();
console.log(name);  // "tg"

不推薦省略var操作符。

還有一種隱式全局變量:

function test() {
  var a = b = 0;
}
test();
console.log(b);  // 0
console.log(a);  // ReferenceError: a is not defined

在上面的代碼中,由于從右至左的操作符優(yōu)先級,所以表達(dá)式“b=0”是先執(zhí)行的,而此時b未經(jīng)過聲明,所以它會成為全局變量。

注意:
使用var創(chuàng)建的全局變量不能刪除。
不適應(yīng)var創(chuàng)建的隱含全局變量可以使用delete刪除(因?yàn)樗⒉皇钦嬲淖兞?,而是全局對象window的屬性)。

function test() {
    var a = b = 0;
    delete a;
    delete b;
    console.log(a);  //  0
    console.log(b);  // ReferenceError: b is not defined
}
test();

2.3.1 變量提升

變量提升是指所有變量的聲明語句,都會被提升到代碼的頭部。

在函數(shù)內(nèi)也一樣,函數(shù)中的所有變量聲明會在函數(shù)執(zhí)行時被“提升”至函數(shù)體頂端。

看個例子:

console.log(a);  // undefined
var a = 1;
function test(){
   console.log(a);  // undefined
   var a = 2;
}
test();

結(jié)果是不是有點(diǎn)出乎你的意料。
其實(shí)JavaScript的執(zhí)行環(huán)境分為聲明階段和執(zhí)行階段,因此對于上面的代碼,JavaScript會這樣解釋代碼:

var a;
console.log(a);  // undefined
a = 1;
function test(){
  var a;
   console.log(a);  // undefined
   a = 2;
}
test();

2.3.2 復(fù)制變量值

如果從一個變量向另一個變量復(fù)制基本類型的值,會在變量對象上創(chuàng)建一個新值,然后把該值復(fù)制到為新變量分配的位置上。

var num1 = 5;
var num2 = num1;
num2 += 5;
console.log(num1);  //5
console.log(num2);  // 10

從上面例子的結(jié)果,我們知道num1中的5和num2中的5是完全獨(dú)立的,num2中的5只是num1中的5的一個副本。

當(dāng)從一個變量向另一個變量復(fù)制引用類型的值時,同樣會將存儲在變量對象中的值復(fù)制一份放到為新變量分配的空間中。不同的是,這個值的副本實(shí)際上是一個指針,而這個指針指向存儲在堆中的一個對象。復(fù)制操作結(jié)束后,兩個變量實(shí)際上將引用同一個對象。因此,改變其中一個變量,就會影響到另一個變量。

var obj1 = new Object();
var obj2 = obj1;
obj2.name = "tg";
console.log(obj1.name);  // "tg"

在上面的例子中,我們將obj1賦給了obj2,兩者就指向了同一個對象,然后給obj2添加了一個屬性name,接著訪問obj1中的name,發(fā)現(xiàn)值和obj2中的name是一樣,因?yàn)檫@兩個變量引用的都是同一個對象。

2.4 空格、換行符

JavaScript會忽略程序中標(biāo)識符之間的空格。在大多數(shù)情況下忽略換行符。

我們可以使用空格和換行來提高代碼的可讀性。

除了可以識別普通的空格符(u0020),JavaScript還可以識別如下表示空格的字符:

水平制表符(u0009)
垂直制表符(u000B)
換頁符(u000C)
不中斷空表(u00A0)
字節(jié)序標(biāo)記(uFEFF)
JavaScript會將如下字符識別為行結(jié)束符:

換行符(u000A)
回車符(u000D)
行分隔符(u2028)
段分隔符(u2029)
回車符加換行符在一起被解析為一個單行結(jié)束符。

2.5 Unicode轉(zhuǎn)義序列

JavaScript定義了一種特殊序列,使用6個ASCII字符來代表任意16位Unicode內(nèi)碼。這些Unicode轉(zhuǎn)義序列碼均以u為前綴,其后跟隨4個十六進(jìn)制(使用數(shù)字以及大寫或小寫的字母A~Fa~f表示)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/81981.html

相關(guān)文章

  • 火狐與IE的7個JavaScript差異

    摘要:在這篇文章中,我將會從個方面概述和在語法上的差異。獲取標(biāo)簽的屬性與上述類似,我們有不同的語法來獲取標(biāo)簽的屬性。這個示例代碼是相當(dāng)基礎(chǔ)的,一般用作許多復(fù)雜事件處理的一部分,這里僅用來描述差異。語法語法透明處理這不是的語法問題,是通過設(shè)置的。 原文:http://www.impressivewebs.com/7-javascript-differences-between-firefox-...

    CoderBear 評論0 收藏0
  • JavaScript核心語法-基礎(chǔ)語法

    摘要:基礎(chǔ)語法區(qū)分大小寫是一種區(qū)分大小寫的語法,意味著的關(guān)鍵字變量名函數(shù)名以及其他一切的字符表示都要使用一致的大小寫形式?;镎Z化物語空格和換行會忽略代碼中出現(xiàn)的空格換行制表符。如果不用花括號獨(dú)立獨(dú)立編寫一個語句,語法并不報錯,但不推薦。 JavaScript基礎(chǔ)語法 區(qū)分大小寫 JavaScript是一種區(qū)分大小寫的語法,意味著JavaScript的關(guān)鍵字、變量名、函數(shù)名以及其他一切的字符...

    soasme 評論0 收藏0
  • JavaScript】核心語法與變量與常量

    JS(JavaScript) 一?;A(chǔ)語法; 1.語法; 區(qū)分大小寫; 他的標(biāo)識符必須以大小寫區(qū)分使用實(shí)為形式,不同的大小寫代表不一樣的意思 var aixinjueluo = 愛新覺羅; console.log(aixinjueluo); var Aixinjueluo = Aixinjueluo; console.log(Aixinjueluo); var AIXINJUELUO = AIXI...

    jaysun 評論0 收藏0
  • JavaScript基礎(chǔ)語法 變量 常量 數(shù)據(jù)類型

    摘要:第十六天筆記基礎(chǔ)語法區(qū)分大小寫是一種區(qū)分大小寫的語言的關(guān)鍵字變量名函數(shù)名以及任何其他的標(biāo)識符必須適應(yīng)一致的大小寫形勢臥龍前端空格和換行并不是的語法內(nèi)容可有可無建議使用將代碼書寫的更加整潔美觀更有可讀性可選的分號分號可選項(xiàng)語法并不是強(qiáng)制要 第十六天筆記 JavaScript 基礎(chǔ)語法 區(qū)分大小寫 JavaScript是一種區(qū)分大小寫的語言 JavaScript的關(guān)鍵字 變量名 函...

    xingpingz 評論0 收藏0
  • 帶你入門 JavaScript ES6 (二)

    摘要:上一篇學(xué)習(xí)下一代語法一,我們學(xué)習(xí)了關(guān)于塊作用域變量或常量聲明和語法新的字符串拼接語法模版字面量數(shù)組元素或?qū)ο笤氐慕鈽?gòu)賦值和對象字面量簡寫的相關(guān)知識。這便是擴(kuò)展運(yùn)算符的用途之一。 本文同步 帶你入門 JavaScript ES6 (二),轉(zhuǎn)載請注明出處。 上一篇學(xué)習(xí)下一代 JavaScript 語法: ES6 (一),我們學(xué)習(xí)了關(guān)于塊作用域變量或常量聲明 let 和 const 語法、...

    chanthuang 評論0 收藏0
  • 說說對JSX的認(rèn)識

    摘要:認(rèn)識引子最近幾個月做的一個項(xiàng)目,使用了技術(shù)體系,自然而然的用到了。下面就總結(jié)一下自己對的認(rèn)識。而這無疑增加了框架的門檻和復(fù)雜度。在被渲染之前,所有的數(shù)據(jù)都被轉(zhuǎn)義成為了字符串處理。以避免跨站腳本攻擊。表示對象將編譯成調(diào)用。 JSX認(rèn)識 引子 最近幾個月做的一個項(xiàng)目,使用了react技術(shù)體系,自然而然的用到了JSX。下面就總結(jié)一下自己對JSX的認(rèn)識。 什么是JSX 即JavaScript...

    clasnake 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<