JavaScript
1
//字符串转换为数字 //parseInt()和parseFloat() //字面量
2.
//注释 // 单行注释 常用 /* 这是一个更长的, 多行注释 */ /* 然而, 你不能, /* 嵌套注释 */ 语法错误 */ //声明 JavaScript有三种声明方式。 var //声明一个变量,可赋一个初始化值。 let //声明一个块作用域的局部变量,可赋一个初始化值。 const //声明一个块作用域的只读的命名常量。 //变量 //在应用程序中,使用变量来作为值的符号名。变量的名字又叫做标识符,其需要遵守一定的规则。 //一个 JavaScript 标识符必须以字母、下划线(_)或者美元符号($)开头;后续的字符也可以是数字(0-9)。因为 JavaScript 语言是区分大小写的,这里所指的字母可以是“A”到“Z”(大写的)和“a”到“z”(小写的)。 //声明变量 //使用关键词 var。例如 var x = 42。这个语法可以用来声明局部变量和全局变量。 //直接赋值。例如,x = 42。这样就会声明了一个全局变量并会在严格模式下产生一个 ReferenceError。声明变量时不应该用这种方式。 //使用关键词 let。例如 let y = 13。这个语法可以用来声明块作用域的局部变量。 //变量求值 //用 var 或 let 语句声明的变量,如果没有赋初始值,则其值为 undefined。 //试图访问一个未声明的变量会导致一个 ReferenceError 异常被抛出: var a; // the value of a is undefined console.log("The value of a is " + a); // the value of b is undefined console.log("The value of b is " + b); var b; // Uncaught ReferenceError: c is not defined console.log("The value of c is " + c); let x; // the value of x is undefined console.log("The value of x is " + x); // Uncaught ReferenceError: y is not defined console.log("The value of y is " + y); let y; //你可以使用 undefined 来判断变量是否已赋值 if(input === undefined){} //undefined 值在布尔类型环境中会被当作 false var myArray; if (myArray){} //不成立 //数值类型环境中 undefined 值会被转换为 NaN var a; a + 2; // 计算为 NaN //当你对一个 null 变量求值时,空值 null 在数值类型环境中会被当作0来对待,而布尔类型环境中会被当作 false var n = null; typeof(n); // "object" Null类型只有一个值,称为null. console.log(n * 32); // 0 //变量的作用域 //在所有函数之外声明的变量,叫做全局变量,因为它可被当前文档中的任何其他代码所访问。在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。 //变量声明提升 //JavaScript 变量的另一特别之处是,你可以引用稍后声明的变量而不会引发异常。这一概念称为变量声明提升(hoisting);JavaScript 变量感觉上是被“提升”或移到了函数或语句的顶部。然而提升后的变量将返回 undefined 值。所以在使用或引用某个变量之后进行声明和初始化操作,这个被提升的引用仍将得到 undefined 值。 console.log(x === undefined); // true var x = 3; var myvar = "my value"; (function() { console.log(myvar); // undefined var myvar = "local value"; })(); //在 ECMAScript 2015 中,let(const)将不会提升变量到代码块的顶部。因此,在变量声明之前引用这个变量,将抛出错误ReferenceError。 console.log(x); // ReferenceError let x = 3; //函数提升 /* 函数声明 */ foo(); // "bar" function foo() { console.log("bar"); } /* 函数表达式 */ baz(); // TypeError: baz is not a function var baz = function() { console.log("bar2"); }; //全局变量 //全局变量实际上是全局对象的属性。在网页中,(译注:缺省的)全局对象是 window,所以你可以用形如 window.variable的语法来设置和访问全局变量。 //因此,你可以通过指定 window 或 frame 的名字,从一个 window 或 frame 访问另一个 window 或 frame 中声明的变量。例如,在文档里声明一个叫 phoneNumber 的变量,那么你就可以在子框架里使用 parent.phoneNumber 来引用它。 //常量