语法级
1. ==
与===
区别(!=
与!==
区别)
==
相同类型,比较值;不同类型转化为相同类型,比较值。
===
相同类型,比较值;不同类型直接为false
例如:
123 == "123" // true
123 !== "123" // false
2. while
与do-while
区别
while
先判断再执行,do-while
先执行再判断。
例如
var inp = prompt("请输入密码");
while(inp!="abc"){
inp = prompt("请输入密码");
}
do{
var inp = prompt("请输入密码");
}while(inp!="abc");
3. for
与for-in
区别
for
用于简单的循环,是最基础的循环方式。
for-in
用于数组和对象的循环,是简洁的循环方式。
var arr = [ "HTML" , "CSS" , "JS" , "JQuery" , "Boostrap" ] ;
for (var i = 0 ; i < arr.length ; i++ ) {
document.write( arr[i] );
}
for ( var i in arr ) {
document.write( arr[i] );
}
4. 前缀++
与后缀++
区别(前缀--与后缀--区别)
前缀++
先自加再运算
后缀++
先运算后自加
var i=1;
var a = (++i)+5;// a为7 i为2
var j=1;
var b = (i++)+5;// b为6 i为2
5. null
与undefined
区别
undefined
表示变量声明但未初始化时的值,
null
表示准备用来保存对象,还没有真正保存对象的值。
alert(null==undefined); // true
6. innerHTML
和innerText
区别
-
innerText
起始标签到结束标签所有的文本内容。 -
innerHTML
起始标签到结束标签所有的HTML标签。
注意
- FF、IE6、IE7对
innerText
不支持。 - 对于
textarea
,text
,password
,button
等表单元素,不能使用innerHTML获得值,只能通过.value
获得值。
7. encodeURI
与encodeURIComponent
区别
- encodeURI一般用于整个URL加密处理
- encodeURIComponent一般用于整个URL参数部分的加密处理
8. escape
转义字符
9. BOM与DOM区别
10. break
,continue
与return
的区别
-
break
用于while
for
终止循环,switch
终止选择。 -
continue
用于while
for
跳过本次循环,直接进入下次循环。 -
return
用于函数中,退出函数。如果后面有变量/常量,表示推出时带有返回数据。
11. typeof
与instanceof
的区别
-
typeof
只能用于判断数据类型,不能判断对象。
typeof 变量
返回值为类型字符串。
typeof 123;// 返回值为"number"
typeof "123";// 返回值为"string"
-
instanceof
只能用于判断对象
变量 instanceof 对象
返回值为布尔值
123 instanceof Number;// 返回值为true
123 instanceof String;// 返回值为false
注意:instanceof
在不同浏览器上的支持程度有差异。