JS刷题中遇到的知识点(1)

  1. JavaScript中包含以下七个全局函数:escape()、eval_r()、isFinite()、isNaN()、parseFloat()、parseInt()、unescape()
  2. a^=(1<<4)-1等于多少?   答:<<表示 左移,先转换为2进制,1为01,然后左移4位,成为010000,再化为10进制,10000(二进制) = 16(十进制)。 接着a = a ^15 而a = 10,符号^表示异或,也就是比较对应的二进制位是否相同,相同为0,不同为1。 10的二进制 => 1010 15的二进制 => 1111 通过异或运算可以得到 0101 再转换成十进制即是5
  3. 在旧浏览器(ie7-)以下用Array.join()连接字符串交高效
  4. JavaScript中的document.getElementById()返回的值的类型为object
  5. js跨域:域名、端口号、协议三者有一个不同就是跨域
  6. 闭包:有权访问另一个函数作用域中的变量、函数内嵌套函数,返回到外部形成闭包、内部函数可以引用外层的参数和变量、参数和变量都不会被垃圾回收机制回收
  7. Symbol的注意事项:symbol值不能与其他类型的值进运算、混合运算,会报错;symbol值如果想作为属性名,就不能再用运算符,因为点运算符后面跟的总是字符串;在对象内部使用symbol值作为属性名的时候,必须要将值放在方括号中
  8. typeof Date.now() 的值是number
  9. AngularJS中control间通信最好使用什么方式? 广播
  10. open()方法可以查找一个已经存在的或者新建的浏览器窗口,语法:window.open([url],[窗口名称],[参数字符串])
  11. 在构造函数里,如果不写return的话默认就是返回创建的实例对象
  12. 在构造函数里如果写了return的话,(1)如果return的是一个基本数据类型的话,仍然返回实例对象(2)如果return的是一个对象的话,则返回该对象,原本指向实例对象的this无效
  13. reflow(回流)和repaint(重绘)https://www.cnblogs.com/zhutao/p/6551216.html

    什么是reflow和repaint(原文链接:浏览器渲染页面原理 - 331415706 - 博客园

    reflow:例如某个子元素样式发生改变,直接影响到了其父元素以及往上追溯很多祖先元素(包括兄弟元素),这个时候浏览器要重新去渲染这个子元素相关联的所有元素的过程称为回流

  14. repaint:如果只是改变某个元素的背景色、文 字颜色、边框颜色等等不影响它周围或内部布局的属性,将只会引起浏览器 repaint(重绘)。repaint 的速度明显快于 reflow

    下面情况会导致reflow发生

    1:改变窗口大小

    2:改变文字大小

    3:内容的改变,如用户在输入框中敲字

    4:激活伪类,如:hover

    5:操作class属性

    6:脚本操作DOM

    7:计算offsetWidth和offsetHeight

    8:设置style属性

  15. 给网页添加JavaScript的方式有:(1)使用script标签,把JavaScript代码写到script标签中(2)添加外部JavaScript文件(3)使用行内JavaScript(4)使用import引入JavaScript文件

  16. (1)return {a:xxx} 会返回你定义的这个对象
    (2)没写return 或者return一个基本类型 这两种情况(没写或者return基本类型)它都会默认返回一个对象

  17. 几个常见的事件的方法

    preventDefault()    取消事件默认行为,如阻止点击提交按钮时对表单的提交

    stopImmediatePropagation()   取消事件冒泡同时阻止当前节点上的事件处理程序被调用,影响当前的事件***

    stopPropagation()   取消事件冒泡,不影响事件***

    cancelBubbe()     取消事件冒泡

    returnValue()      取消事件默认行为

  18. Date.now() 方法返回自1970年1月1日 00:00:00 返回的是当前时间的毫秒数(number型)。

  19. hasOwnProperty: 是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

    isPrototypeOf : 是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

  20. arr.filter()用于筛选出满足要求的数组元素,并返回新的数组;

    arr.some()用于检测数组是否有满足条件的元素,只要存在元素满足要求,则返回true,否则返回false

    arr.every()用于检测数组的所有元素是否都满足条件,都满足条件时返回true,否则返回false

    arr.map()会对数组中每个元素进行单独判断,返回true或者false,作为新数组的元素

  21. 后置自增,先参与运算,后自增。 前置自增,先自增,后参与计算

  22. undefined == null //true;

    undefined === null //false

  23. exec()函数就是找有没有匹配项,返回值为数组

  24. 获取原生JS的父节点是:element.parentNode   注意!!!没有()

  25.  

  26.  

  27. 产生当前日期的方法:Date()和new Date() 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值