1.bind相关用法

fun.bind(obj)将obj传入fun作为其作用域

fun.bind将返回一个新的函数地址,fun.bind(obj)!=fun.bind(obj)

反复bind只有第一次有效

转载注明http://www.cnblogs.com/billyrun/p/6597250.html

2.js中的真值

0 , “” , null , undefined , false , NaN转为boolean都是false

null == undefined 真

null === undefined 假

0 == "" 真

0 == false 真

false == "" 真

1 == true 真

2 == true 假

2 == false 假

'true' == true 假

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

4.对象深拷贝小技巧

var obj2 = JSON.parse(JSON.stringify(obj1))

5.关联数组长度

var size = Object.keys({a:1}).length //size = 1

6.JavaScript内存管理问题

什么样的数组需要手动回收?(全局引用)

7.bind/call/apply的使用

prototype与__proto__的联系

instanceof与constructor

8.如何判断一个对象的值是否是数字

100 , '100' , 'abc' , null

最佳答案:isNaN()

//注意 NaN == NaN 结果是false

9.JS中的分号问题

console.log('111')      //没有加分号
(true && console.log('222'))  //且用括号包着导致问题 报错第三句不能执行
console.log('333')

VM73:1 111
VM73:2 222
VM73:2 Uncaught TypeError: console.log(...) is not a function
at <anonymous>:2:1

console.log('111');      //加了分号之后 解决问题
(true && console.log('222'))
console.log('333')
VM74:1 111
VM74:2 222
VM74:3 333

JavaScript面试知识点与开发技巧汇总的更多相关文章

  1. 由浅入深,66条JavaScript面试知识点

    前言 我只想面个CV工程师,面试官偏偏让我挑战造火箭工程师,加上今年这个情况更是前后两男,但再难苟且的生活还要继续,饭碗还是要继续找的.在最近的面试中我一直在总结,每次面试回来也都会复盘,下面是我这几 ...

  2. 移动平台WEB前端开发技巧汇总(转)

    最近我很关注移动前端的知识,但做为一个UI设计师和web前端工作人员没有这个工作环境接触,做为门外汉,网上系统的知识也了了,一直有种雾里看花的感觉,见到本文,我自己是奉为经典.所以我分享之后又专门打笔 ...

  3. javascript的10个开发技巧

    总结10个提高开发效率的JavaScript开发技巧. 1.生成随机的uid. const genUid = () => { var length = 20; var soupLength = ...

  4. 移动平台WEB前端开发技巧汇总

    原文 :http://uecss.com/mobile-platform-web-front-end-development-skills-summary.html 开发者们都知道在高端智能手机系统中 ...

  5. 移动webAPP前端开发技巧汇总

    1. viewport:webapp视图 也就是可视区域.对于桌面浏览器,我们都很清楚viewport是什么,就是除去了所有工具栏.状态栏.滚动条等等之后用于看网页的区域,这是真正有效的区域.由于移动 ...

  6. (转载)移动Web开发技巧汇总

    META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题" ...

  7. 移动Web开发技巧汇总(转)

    META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题" ...

  8. 移动webAPP前端开发技巧汇总2

    一.关于单位的使用 可能在传统的PC端来说,1px=1px的比例.而在移动端却不是这样,1px = ?. 因为出现了一个像素密度这样个东西,就不能在移动端使用“PX”这个单位.可能在你的大屏手机是1p ...

  9. 前端开发 JavaScript 干货知识点汇总

    很多初学的朋友经常问我,前端JavaScript都需要学习哪些东西呀?哪些是JavaScript的重点知识啊? 其实做前端开发工程师,所有的知识点都是我们学习必备的东西,只有扎实的技术基础才是高薪的关 ...

随机推荐

  1. learning scala control statement

    1 .if satement 与其它语言不同的是,scala if statement 返回的是一个值 scala> val a = if ( 6 > 0 ) 1 else -1a: In ...

  2. POST提交表单时EnType设置问题

    POST提交表单时EnType设置问题 首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选: 1.application/x-www-form-urlencoded 2.mult ...

  3. 九. Python基础(9)--命名空间, 作用域

    九. Python基础(9)--命名空间, 作用域 1 ● !a 与 not a 注意, C/C++可以用if !a表示if a == 0, 但是Python中只能用if not a来表示同样的意义. ...

  4. npm login npm publish报错

    . 把那个文件删除就好了 查看npm是淘宝的还是原始的 npm config get registry 如果是淘宝的要退回到原始的 npm config set registry=http://reg ...

  5. Find the Missing Number II

    Giving a string with number from 1-n in random order, but miss 1 number.Find that number. Notice n & ...

  6. matlab中文本文件与图像转化

    一  将图片转化为txt文本文件 a=imread('picture.bmp');   //读取picture.bmp图片 b=rgb2gray(a);                 //由rgb图 ...

  7. DevExpress WinForms使用教程:Diagram Control

    [DevExpress WinForms v18.2下载] DevExpress WinForms v18.2包含WinForms和WPF Diagram Controls的三个高要求功能:新的Dia ...

  8. jquery获取URL的参数和锚点

    由于经常会用到替换URL参数值,而网上写的方法代码都太长了,所以在这里写了一个简单的方法,供大家使用. 1)获取url参数 function getUrlParam(name) { var reg = ...

  9. js 唤起APP

    常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用 ...

  10. 在 子 iframe中 点击一个按钮, 变换 这个 iframe的地址url.

    //跳到测试结果: function jump() { console.log(self.parent.document.getElementById("iframe").src) ...