JS中需要注意的点(二)

  1. 条件语句和循环语句不能阻止var声明的变量声明的提升。(建议使用ES6中的let声明变量)。
  2. break关键字打破循环时,在未给循环命名的时候只会打断本层循环。在使用命名后,break会同时打破本层和命名层。
  3. function关键字定义的函数,js会始终在调用它前解析它。 举个例子:
    var a = function(){①};
    function a(){②};
    a();

    这段伪代码会执行①,因为function会提升至最前,之后的var a相当于覆盖了function定义的a函数。因此a()执行的是①的内容。

  4. 数组的方法中,pop(),shift()这些删除数组中值的方法,返回的都是一个新数组,数组中的值是被删除的项。

  5. push(),unshift()返回值是新数组的长度。
  6. slice(a, b)中a和b的值可以是负数,代表从后往前数。
  7. splice(),一个增、删、改集于一身的神奇方法。
    splice(a,b) 从a开始,删除b项,返回被删除的数组
    splice(a,b,xx) 从a开始,删除b项,替换成xx内容,返回被删除的数组
    splice(a,0,xx) 在a项后插入xx,返回空数组

  8. 字符串中substr(a,b) a代表起始位置,b代表长度,a可以是负数,b不可以。

  9. substring(a,b) a代表起始位置,b代表结束位置,包括a不包括b。
    这里写图片描述
    其中a,b可以为负数,但负数会被认为是0。
    无论a和b谁大,默认都是从小的索引值开始截取,至大的索引值。因此如果a>b,运行的就是substring(b,a)

  10. IIFE的写法中,推荐使用(function(){})();这种双括号的写法,+、-、!也可代表IIFE。function fn(){}();这种写法是错误的。但是,var fn = function(){}();这种写法是正确的。

  11. offsetWidth()代表实际占位的宽度:width+padding+border
    offsetHeight()代表实际占位的高度:height+padding+border
    clientWidth() : width+padding ( 没有border)
    clientHeight(): height+padding (没有border)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值