No1.语法和类型
1.声明定义
变量类型:var,定义变量;let,定义块域(scope)本地变量;const,定义只读常量。
变量格式:以字母、下划线“_”或者$符号开头,大小写敏感。
变量赋值:声明但未赋值的变量在使用时值为undefined,未声明的变量直接使用会抛异常。
未赋值变量作计算:结果为NaN。例如:
var x, y = 1;
console.log(x + y); //结果为NaN,因为x没有赋值。
2.作用域
变量作用域:在ES6之前没有块声明域,变量作用于函数块或者全局。如下面的代码输入的x为5。
if (true) {var x = 5;}console.log(x); // 5
ES6变量作用域:ES6支持块作用域,但需要使用let声明变量。下面的代码输出结果抛出异常。
i f (true) {let y = 5;}console.log(y); // ReferenceError: y is not defined1234
变量上浮:在一个方法或者全局代码中,我们在生命变量之前使用变量时并没有抛异常,而是返回undefined。这是因为javascript自动把变量的声明上浮到函数或者全局的最前面。如下面的代码:
/*** 全局变量上浮*/console.log(x === undefined); // logs "true"var x = 3;/*** 方法变量上浮*/var myvar = "my value";// 打印变量myvar结果为:undefined(function() {console.log(myvar); // undefinedvar myvar = "local value";})(); 上面代码和下面代码是等价的: /*** 全局变量上浮*/var x;console.log(x === undefined); // logs "true"x = 3;/*** 方法变量上浮*/var myvar = "my value";(function() {var myvar;console.log(myvar); // undefinedmyvar = "local value";})();
全局变量:在页面中,全局对象是window,所以我们访问全局变量可通过window.variable。例如:
version = "1.0.0";console.log(window.version); //输出1.0.0
No2.数据结构和类型
1.数据类型
6个基础类型:Boolean(true或者false)、null(js大小写敏感,和Null、NULL是有区别的)、undefined、Number、String、Symbol(标记唯一和不可变)
一个对象类型:object。
object和function:对象作为值的容器,函数作为应用程序的过程。
2.数据转换
函数:字符串转换为数字可使用parseInt和parseFloat方法。
parseInt:函数签名为parseInt(string, radix),radix是2-36的数字表示数字基数,例如十进制或者十六进制。返回结果为integer或者NaN,例如下面输出结果都为15。
parseInt("0xF", 16);parseInt("F", 16);parseInt("17", 8);parseInt(021, 8);parseInt("015", 10);parseInt(15.99, 10);arseInt("15,123", 10);parseInt("FXX123", 16);parseInt("1111", 2);parseInt("15*3", 10);parseInt("15e2", 10);parseInt("15px", 10);
新闻热点
疑难解答
图片精选