(一) 类型基础
1. JavaScript区分大小写吗? (Yes)2. 行结束需要分号吗? (可有可无,最好写上,这样逻辑清晰)
3. typeof 功能?返回值有那些? “#6e0000” “number” “boolean” “string” “object”,注意: (typeof null) = "object" ; (typeof undefined) = "undefined"
4. undefined 和 null 有什么不同? 前者表示未初始化,后者是一个对象,但是表示一个特殊的空对象。如果函数和方法返回的结果是对象,那么找不到该对象时,返回的通常是null, 值undefined实际是从值null派生的,因此 null == undefined 返回true.
5. 如何表示8进制,16进制:var m = 070; // 八进制用0开头 var n = 0x1A; // 十六进制用0x开头
6. 特殊Number: Number.MAX_VALUE, Number.MIN_VALUE, Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY, NaN(Not a Number)
7. 有专门表示无穷大的数: Infinity。 Number.NEGATIVE_INFINITY = -Infinity; Number.POSITIVE_INFINITY = Infinity, 判断一个数是有穷的,可以使用isFinite(number),它返回bool值。
8. NaN的特殊之处在于它和自己不等。(NaN == NaN) 结果为false。 函数isNaN(value)用来判断value是否无法转换为number,所以isNaN(“blue”) =true;
isNaN("123") = false
9. String是唯一没有固定大小的原始类型。可以使用单引号( ‘) 或者双引号(“)表示string,个人认为还是使用双引号比较好,因为大多数语言如此:)转移符号是\
\'
\\
\"
\unnnn nnnn是十六进制数字,表示Unicode字符
\xnn nn是十六进制数字,表示字符
(二)转换
10. 到string转换: 三种基本类型都有toString()函数,对于Number,除了基本的toString()方法,还提供了进制转换 toString(2),toString(8),toString(16),分别是转换为2进制,8进制,16进制。也可以toString(10),这个和toString()等价。
11. 到Number转换:parseInt(), parseFloat()
parseInt("abc100") =NaN;
parseInt("100abc") = 100;
parseInt("070") =56;
parseInt("070.5") = 56;
parseInt("abc") =NaN;
parseInt("0x10") = 16;
parseInt("0x10.5") = 16;
parseInt 第二个参数可以指定进制,2为2进制,10为10进制,如果不写,那么系统智能判断(如上面的Sample)
ParseFloat不支持进制,所以parseFloat("070")= 70; parseFloat("0x10")= NaN;
这两个parse函数都是截取前面的符合条件的字串转换,所以parseFloat("3.4.5")=3.4; parseInt("12AB")= 12;
12. 强制转换:
Boolean(value) 下面值转换为false:“”, 0, undefined, null,
Number(value)同parseInt,parseFloat,有一点区别是没有部分截取分析的能力,所以parseFloat("3.4.5")=NaN; parseInt("12AB")= NaN
String(value)等价value.toString()