前端之JavaScript进阶

JavaScript:目前来说,是最流行的脚本语言。

ECMAScript:JavaScript的标准

step:

js不区分小数和整数;都为number。

特殊:Infinity 表示无限大。NaN:not a number 。string:undefined。

=

==等于(类型不一样,值一样会被判断成true)

===绝对等于(类型和值都要一样)

特殊:NaN===NaN NaN与所有的数值都不等,包括自己。只能通过isNaN(NaN)来判断是否是NaN;

浮点数问题:(基础精度问题,这里不加以赘述。)

例:console.log(1/3===(1-2/3)); 为false

解决:Math.abs(1/3===(1-2/3))<0.000001;设置位数

null 空、undefined 未定义

数组 var arr=[];

对象 var arr={};

局部变量建议使用let来定义

大小写变换方法:toUpperCase();toLowerCase();

substring 截取例:

hello world! 截取(3,7),那就是4 5 6 空格也算一个下标 所以答案是lo w

arr.indexof();通过元素获得下标索引

slice()截取array的一部分,返回一个新数组。 

可以用push和pop压入和弹出

push(数据)添加到尾部,pop()调用一次就弹出一次尾部也就是减少

unshift()添加到头部,shift()删除头部

排序:sort()正向。 reverse()反序、concat()拼接 原来的数组依然存在

连接符 join();

map和set

set:去重,无序不重复的集合。

map.set 加入。set.add加入。set.delete()删除。set.has()是否有这个元素。

迭代方法:

遍历数组:

var arr=[1,2,3,4,5];

for (const iterator of arr) {

    console.log(iterator);

}

遍历map:

var map=new Map([["tommy","23"],["Jenne","25"],["Lisa","24"]])

for (const iterator of map) {

    console.log(iterator);

}

set同理

arguments包含所有的参数  rest获取除了已定义参数之外的参数。

例:

function test(a,b,c,rest) {

    console.log("a",a)

    console.log(rest)

}  rest=b,c

闭包

不知道为什么这个争议这么大,我觉得还蛮简单的。这里也提出来说一说。

其实简单理解来说,就是为了给特有的这几个变量开辟一个环境而诞生的函数+变量的一个理念。

什么时候会用到这个呢?

比如你想进行运算,并且每次运算都是基于上一次而做的,用闭包就可以。 因为你创造的这个环境一直都存在内存中,不会在方法被调用之后被垃圾回收机制回收。正因为这样,所以要慎用闭包,否则性能肯定会降低。

用处:读取函数内部变量、内存一直存在,不会在调用之后被回收。配合return使用更佳。

实现:

声明变量、声明函数、在函数里使用这个变量就可以算是一个闭包。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值