3.1 语法
js的一切如变量,函数名,操作符都区分大小写。
3.1.2 标识符
首字符必须是字母或下划线或$,其他字符除了前面3个,还有数字。
3.1.3 注释风格
两种:
//单行注释
/*
* 多行注释
*/
3.1.4 严格模式
ES5引入了严格模式,在任意位置写上如下代码,即开启严格模式,严格模式下,某些代码执行会抛出异常。
"use strict";
3.1.5 语句
js代码结束不用添加;号,但是建议添加上,这样不容易出错,压缩代码时也方便。
3.3 变量
var message = 'hi';//动态类型,用var表示,没有确切类型
message = 2;//还可以等于数字
message2 = 'hi2';//可以不添加var,直接给变量赋值,相当于创建了全局变量
function test() {
var message = 'hi';//局部变量,message仅在test函数内部可见
message2 = 'hi';//没有var,相当于声明全局变量,函数内外均可见
}
console.log(message); // undefined
console.log(message2); // hi
var message = 'hi', found = true, age = 29;//一行声明多个变量
3.4 数据类型
5种简单数据类型:Undefined, Null, Boolean, Number, String.
1种复杂数据类型:Object
3.4.1 typeof操作符
console.log(typeof 'hi'); // string
console.log(typeof message); // undefined, 未定义的变量
var obj = null;
console.log(typeof obj); // object
console.log(typeof 2); // number
console.log(typeof true); // boolean
console.log(typeof function(){}); // function
3.4.2 Undefined类型
这种类型只有一个值,undefined:
var message;
console.log(message);// undefined, 声明但未赋值
var message2 = undefined;
console.log(message2);// undefined, 直接赋值为undefined
"use strict";//这句话放到文件顶部或者函数第一行才生效
//未声明的变量使用时直接出错
console.log(age); // ReferenceError: age is not defined,
//未声明变量也输出undefined
console.log(typeof age); // undefined
//删除某个变量,严格模式下出错
delete age;//SyntaxError: Delete of an unqualified identifier in strict mode.
3.4.3 Null类型
只有一个值:null。
var car = null;
console.log(typeof car); // object
3.4.4 Boolean类型
这个类型两个值:true和false。
var found = true, lost = false;
console.log(found, lost);// true false
其它类型可以转换成Boolean类型,使用Boolean()函数:
var msg = 'Hello world';
console.log(Boolean(msg)); // true
数据类型 | 转换为true的值 | 转换为false的值 |
Boolean | true | false |
String | 任何非空字符 | ""(空字符串) |
Number | 任何非零数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | 不存在 | undefined |
var msg = 'Hello world';
if (msg) { //自动应用上述转换规则,由于字符串不空,直接得true值
console.log('msg is true'); // msg is true
}
3.4.5 Number类型
两种值,整数和浮点数。
1.浮点数值
var floatNum1 = 1.1, floatNum2 = 0.1, floatNum3 = .1, floatNum4 = 3.125e7;
console.log(floatNum1, floatNum2, floatNum3, floatNum4); // 1.1 0.1 0.1 31250000