三.基本概念
1.typeof 操作符 检测数据类型
总共undefined boolean string number object function这6种类型
1.1 undefined
未声明或未初始化 变量声明之后默认取得了 undefined 值
1.2 null 空指针
定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值
1.3 boolean true false
1.4 number
1.4.1 数值范围 (Number.MIN_VALUE,Number.MAX_VALUE)即(5e-324,1.7976931348623157e+308)
超出会被转换成 +-Infinity(正负无穷) 值
1.4.2 NaN,即非数值(Not a Number) 用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
判断函数为isNaN()
alert(NaN == NaN); //false
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false( 10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)
1.4.3 数值转换
有 3 个函数可以把非数值转换为数值: Number()、 parseInt()和 parseFloat()。
第一个函数,即转型函数 Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值
如果是 null 值,返回 0。
如果是 undefined,返回 NaN。
var num1 = Number("Hello world!"); //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num4 = Number(true); //1
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
parseInt()传入第二个参数
var num1 = parseInt("10", 2); //2 (按二进制解析)
var num2 = parseInt("10", 8); //8 (按八进制解析)
var num3 = parseInt("10", 10); //10 (按十进制解析)
var num4 = parseInt("10", 16); //16 (按十六进制解析)
var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000
1.5 string
toString() 可传参 参数为数值的基数 即转换为多少进制 null & undefined 无此方法
String() 都有此方法
1.6 object
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。通常与 toString()方法的返回值相同。
2.操作符
2.1 一元加减
2.2 位操作符 与或非
2.3 布尔操作符 逻辑非(!) 逻辑与(&&) 逻辑或(||)
2.4 乘除操作符 * /
2.5 关系操作符 小于(<)、大于(>)、小于等于(<=)和大于等于(>=)
2.6 相等操作符 == != === !==
2.7 条件操作符
variable = boolean_expression ? true_value : false_value;
var max = (num1 > num2) ? num1 : num2;
2.8 赋值操作符 =
2.9逗号
3.语句
3.1 if语句
3.2 do while
3.3 while
3.4 for
3.5 for in语句 for...in 循环只能获取数组的键名,不能直接获取键值,es6提供的for...of 可以直接获取键值
3.6 label语句 多与for循环一起使用
3.7 break和continue语句 都是立即退出循环 break不再执行循环 但是contuine会再次执行循环
var num = 0;
for (var i=1; i < 10; i++) {
if (i % 5 == 0) {
break;
}
num++;
}
alert(num); //4 最后一次i=5的情况下 ,break退出了,num++ 没有执行 ,但执行了alert()
var num = 0;
for (var i=1; i < 10; i++) {
if (i % 5 == 0) {
continue;
}
num++;
}
alert(num); //8 i=5时退出for循环 未执行num++ 但接下来执行i=6直到i=9
3.8 switch语句
4.函数 使用 function 关键字来声明,后跟一组参数以及函数体。
function functionName(arg0, arg1,...,argN) {
statements
}
return 后退出函数
传参