js问题合集—前端面试

  1. JavaScript中构造函数用的是大驼峰式写法
  2. 含有逻辑表达式的赋值 比如 var a=1&&2&&0;
  3. 数组里面的arguments它是一个数组里面的实参列表(数组),可以让js函数的形参小于实参的个数。
  4. 未经声明的变量就赋值,就归window所有,即为全局变量;此外一切声明的全局变量,也归window所有。
  5. **js语言的特点-----预编译:你在后面声明的一个变量,你在前面可以直接给这个变量赋值并使用;即不用先声明而后使用。**预编译会生成一个AO对象,然后各个变量给被当作AO对象的属性,变量值是属性的值。全局变量相同,会生成一个GO对象(GO===window)…
  6. 但凡是内部的函数保存到了外部就会形成————闭包。闭包的作用——函数执行形成的私有作用域,保护里面的变量不受外界干扰的机制
  7. 闭包主要特征:
    1、有两个或两个以上的函数有相互嵌套相互指向。
    2、必有函数或结果被retrun
  8. 立即执行函数 ——JavaScript 引擎在解析 JavaScript 代码时会“函数声明提升”当前执行环境(作用域)上的函数声明,而函数表达式必须等到 JavaScript 引擎执行到它所在行时,才会从上而下一行一行地解析函数表达式。函数表达式的 后面 可以加括号立即调用该函数,函数声明不可以,只能以 fnName() 形式调用。
  9. 我们需要牢记两点:①__proto__和constructor属性是对象所独有的;② prototype属性是函数所独有的,因为函数也是一种对象{因为new 函数()时候,就会生成一个对象},所以函数也拥有__proto__和constructor属性。
  10. 作用域与作用链;原型与原型链。
  11. 你就记住在对象中定义函数叫方法
    在外部定义函数就是函数

12
.
在这里插入图片描述

在这里插入图片描述

  1. *构造器(constructor)的作用?{constructor属性是指向该对象的构造函数}可以用来判断某对象是否由某个函数(类)实例化得来;可以通过调用constructor属性来生成同类对象;
  2. 构造函数的作用是实例化对象,也可实例化多个同类的对象。每个函数都默认有一个构造函数,可以用通过constructor属性来访问调用。
  3. call()与apply()方法的作用与区别??,作用——改变this指向,this会指向call()的第一个参数。区别——apply()第二个传入的参数必须是一个arguments数组。
  4. 命名空间——
  5. objec[方法]——建议枚举 for循环里面必须这么写(因为平常写object.方法()在底层会先转换成object[‘方法’]来执行
  6. 对象的枚举方法有哪四个??
  7. 深度克隆与浅度克隆的实现
  8.                         es5严格模式——带来了哪些变化?

  9. with()和eval()方法都能够改变作用域,但增加程序运行的负担,放慢速度
  10. ES6 引入了块级作用域,让变量的生命周期更加可控。
  11. 块级作用域可通过新增命令 let 和 const 声明,所声明的变量在指定块的作用域外无法被访问。块级作用域在如下情况被创建:

               在一个函数内部,
             在一个代码块(由一对花括号包裹)内部

  1. 块级作用域有以下几个特点:

            声明变量不会提升到代码块顶部
let/const 声明并不会被提升到当前代码块的顶部,因此你需要手动将 let/const 声明放置到顶部,以便让变量在整个代码块内部可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值