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岗面试题汇总及那些不为人知的涨薪技巧,看完疯狂涨价,不接受反驳

Javascript面试题&知识点汇总

前端JavaScript面试技巧

前端JavaScript面试技巧视频教程 js面试课程 共8章

HTML面试题&知识点汇总

Excel知识点与技巧5 -分类汇总 数据有效性