JavaScript面试知识点与开发技巧汇总
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript面试知识点与开发技巧汇总相关的知识,希望对你有一定的参考价值。
1.bind相关用法
fun.bind(obj)将obj传入fun作为其作用域
fun.bind将返回一个新的函数地址,fun.bind(obj)!=fun.bind(obj)
反复bind只有第一次有效
2.js中的真值
0 , “” , null , undefined , false , NaN转为boolean都是false
null == undefined 真
null === undefined 假
3.表达式的使用
if(a>0)
{
b = true
}
else
{
b = false
}
应写为b = a > 0
复杂情况可以使用局部变量或三元表达式
4.闭包与引用传递
1.闭包里传的都是引用(简单类型也是引用!)
2.for()循环内var定义的变量相当于在外面定义了var i = 0
for()循环内应使用let i = 0 , 这样i只在for循环内部可见
3.由于这个闭包的关系,可以看到,是循环完毕之后才返回
var methods = [] for(var i = 0 ; i < 10 ; i++) { methods[i] = (function(){ console.log("i =" , i) return i }) } methods[0]() VM1405:5 i = 10 10 i = 100 100 methods[0]() VM1405:5 i = 100 100
以下代码暴露出for循环内错误使用闭包以及var声明迭代器的严重错误
var methods = [] for(var i = 0 ; i < 10 ; i++) { methods[i] = (function(){ console.log("i =" , i) return i }) } methods[0]() VM1196:5 i = 10 10 for(var i = 0 ; i < 10 ; i++)methods[i]() VM1196:5 i = 0 VM1196:5 i = 1 VM1196:5 i = 2 VM1196:5 i = 3 VM1196:5 i = 4 VM1196:5 i = 5 VM1196:5 i = 6 VM1196:5 i = 7 VM1196:5 i = 8 VM1196:5 i = 9 9 methods[0]() VM1196:5 i = 10 10 for(var j = 0 ; j < 10 ; j++)methods[j]() 10VM1196:5 i = 10
以上是关于JavaScript面试知识点与开发技巧汇总的主要内容,如果未能解决你的问题,请参考以下文章
Java岗面试题汇总及那些不为人知的涨薪技巧,看完疯狂涨价,不接受反驳