
语法级
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用于whilefor终止循环,switch终止选择。 -
continue用于whilefor跳过本次循环,直接进入下次循环。 -
return用于函数中,退出函数。如果后面有变量/常量,表示推出时带有返回数据。
11. typeof与instanceof的区别
-
typeof只能用于判断数据类型,不能判断对象。
typeof 变量返回值为类型字符串。
typeof 123;// 返回值为"number"
typeof "123";// 返回值为"string"
-
instanceof只能用于判断对象
变量 instanceof 对象返回值为布尔值
123 instanceof Number;// 返回值为true
123 instanceof String;// 返回值为false
注意:instanceof在不同浏览器上的支持程度有差异。