匪夷所思的js

匪夷所思的js

  1. for循环中的判断条件
    在这里插入图片描述
    k最终的值是10,i<10和j<6这两个条件,只认第二个,只要第二个满足了就结束循环。 但如果你在中间加上&&或者||那么就是并且或者或的关系,写逗号的话就只看第二个。

  2. js数据类型
    在这里插入图片描述
    在这里插入图片描述
    选c,其中symbol是es6新规定的类型,是一种匿名的并且唯一的标识。用法:
    let a = symbol(),那么a就是匿名并且唯一的。

  3. Js闭包
    在这里插入图片描述
    答案是A,B是个错误答案,但很容易错选B,定时器只是个干扰

  4. 字符串以及数组操作
    在这里插入图片描述
    答案是C
    在这里插入图片描述

  5. 关于浏览器宽度
    在这里插入图片描述
    答案是C,因为window都不具备其他三个属性。

  6. 关于函数原型链
    在这里插入图片描述
    答案是A
    在这里插入图片描述
    答案是A
    B构造函数是有原型链的,他的原型链最终指向object
    C对象就是构造函数的实例,否则对象是从哪里来的
    D构造函数本身是一个普通的函数,只不过有一点特殊,是用来创建对象的,跟闭包没关系

  7. 关于执行顺序
    在这里插入图片描述
    答案为A
    如果反过来就是false
    I++后面的加号就不用看了,没用,那么就是++i==i
    ++I是把i自加后赋值给表达式,那么左边就是1,后面的i也是1,所以相等,是true,反过来就不是那么回事了
    I++的整体值是1,++i之后就变成2了

  8. 函数返回值问题
    在这里插入图片描述
    纯吓唬人,选D,没有返回值就是undefined。看起来蛮吓人的,没有返回都是浮云。
    在这里插入图片描述
    答案是B
    当fn1执行完后所有变量被销毁,所以当newfn第一次执行的时候a重新计算,就是1
    但如果newfn在执行一次,由于之前newfn执行后a并没有被销毁,所以a还是保留的上一次的值1,所以在此执行就是2了

  9. 节点属性操作
    在这里插入图片描述
    答案是B
    []的方式是操作对象的,对象的属性存在于内存中,节点属性是dom属性,dom属性存在于dom文档中

  10. 关于new操作符
    在这里插入图片描述
    答案是C,如果作为构造函数调用,就不要返回任何东西,因为构造函数默认会返回当前函数的实例,就是一个对象,在加上return就会覆盖掉了。

  11. classList有哪些操作
    classList是es5中的内容,可以操作元素的类名。
    用法:element.classList
    属性:length,只读,返回类名的数量
    方法:add 在元素中添加一个或多个类名,多个类名用逗号隔开
    contains返回布尔值,指定的类名是否存在
    item返回指定类名的索引值,索引值从0开始
    remove移除一个或多个类名,移除不存在的类名不报错
    toggleClass切换类名
    示例:

  12. 数组的every和some方法
    例如:
    在这里插入图片描述
    其中两个知识点:…可以把对象或者数组展开,inputs属于类数组,所以要用…展开成真正的数组,htmlColections元素集合都是类数组
    every用于循环数组中的每一项,每一项需要满足参数所返回的布尔值,这里每一个复选框必须是选中的,如果有一个没选中,整个值就是false
    some跟every相反,只要有一项满足参数的返回的布尔值,整个值就是true,都不满足才返回false

  13. 逗号表达式
    在这里插入图片描述

  14. 全局作用域,局部作用域和块作用域
    局部作用域是指的函数体内,块作用域是指的花括号括起的一段,比如if括起的和for括起的。var声明的变量支持全局和局部,不支持块,在块内声明的变量得不到保护,也会覆盖全局的。let支持全局,局部和块,在块内用let声明的变量在块内依旧有效,也不会替换全局的同名变量。

  15. null与undefined
    在这里插入图片描述

  16. 关于前端的规范
    我承认这个有点跑题,但还是说一下吧。
    AMD,CMD,以及UMD,UMD是统一模块定义,适用于前端以及后端。commonjs是一套后台的规范,它不是前端模块化规范。

  17. 构造函数需要注意的地方
    构造函数不要返回对象或者是函数,这样做会覆盖掉new出来的对象,例如:
    在这里插入图片描述
    new f()出来的不是f的实例,而是返回的f函数,既然都没有实例了,那么instanceof 的结果就肯定为false了。

  18. 关于NAN这个东西
    他的类型是个数字,它本身不是数字,所以用typeof操作符是判断不出来nan的。另外infinity也是同样的道理,所以用typeof操作符筛选不出来纯数字。正确的方法是用Number.isFinite()方法,这个方法是用来判断一个变量是否是有穷的,只要是纯数字就是有穷的,方法如下:
    在这里插入图片描述

  19. ie下ajax请求失败
    原因:跨域
    解决办法:
    在这里插入图片描述
    本文系根据妙味vip视频资料进行独立整理,属于二次加工,更多优质视频请关注妙味,尊重版权。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值