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. php数组判断值相等时出现的次数,0,1,2这样的

    方法1: $arr = array(array( 0=> array('a'=>1), 1=> array('a'=>3), 2=> array('a'=>4), ...

  2. shell shell基本概述

    SHELL的概念 SHELL是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序, 用户可以用shell来启动,挂起,停止甚至是编写一些程序. ​ Shell还是 ...

  3. Win10系列:JavaScript 数据绑定

    使用数据绑定可以使页面中元素的属性值与数据源中的数据同步,其中数据源可以来自数据库.文件以及自定义的数据等.在常用的数据绑定方法中,简单对象绑定是将HTML元素与一个仅包含数据的简单对象相绑定,模板绑 ...

  4. python 笔记数据类型

    python基础: 采用缩进方式     4个空格的缩进 大小写敏感 数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值,但是,计算机能处理的 ...

  5. python全栈开发笔记--------条件语句

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. Py ...

  6. docker 将正在运行的容器打包为镜像

    将容器打包成镜像 docker commit -a "runoob.com" -m "my apache" 容器名称或id 打包的镜像名称:标签 OPTIONS ...

  7. (Java学习笔记) Java Threading (Java线程)

    Java Threading (Java线程) ● Process & Thread Processes are the abstraction of running programs: A ...

  8. (C/C++学习笔记) 二十二. 标准模板库

    二十二. 标准模板库 ● STL基本介绍 标准模板库(STL, standard template library): C++提供的大量的函数模板(通用算法)和类模板. ※ 为什么我们一般不需要自己写 ...

  9. VSTO:使用C#开发Excel、Word【10】

    第二部分:.NET中的Office编程本书前两章介绍了Office对象模型和Office PIA. 您还看到如何使用Visual Studio使用VSTO的功能构建文档中的控制台应用程序,加载项和代码 ...

  10. Xilinx FFT IP v9.0 使用(一)

    reference:https://blog.csdn.net/shichaog/article/details/51189711 https://blog.csdn.net/qq_36375505/ ...