单体内置对象

内置对象:由ECMAscript实现提供的,不依赖宿主环境的对象,这些对象再ES程序执行之前就已经存在

Global对象

Global全局对象是一个特别的对象(兜底对象)
不属于其他对象的属性和方法,都属于Global对象。
如:isNaN()① isFinite()② parseInt() parseFloat()


注解:

① isNaN 方法用于检查其参数是否非数值,通常用于检测parseInt()和parseFloat()的结果。(如果是非数值则返回true,数值则返回false)

② isFinite() 方法用于检测其参数是否是有限数


URI编码方法

Global对象中有两个方法可以对URI编码,以方便发给浏览器:

  • encodeURI() 可以对整个URI进行编码,因为它不会对属于URI的特殊字符进行编码,比如:斜杠/冒号等;
  • encodeURIComponent() 主要适用于对URI中的某一段进行编码,因为它会对任何非标准字符进行编码。
var uri = 'http://www.baidu.com/tieba/index.html#serch 134';

console.log('encodeURI: ' + encodeURI(uri));
console.log('encodeURIComponent: ' + encodeURIComponent(uri));

/* 输出
encodeURI: http://www.baidu.com/tieba/index.html#serch%20134
encodeURIComponent: http%3A%2F%2Fwww.baidu.com%2Ftieba%2Findex.html%23serch%20134
*/

相对应的,它们有编码,自然也会有解码:

  • decodeURI()
  • decodeURIComponent()
var uri = 'http://www.baidu.com/tieba/index.html#serch 134';

var codeuri1 = encodeURI(uri);
var codeuri2 = encodeURIComponent(uri);

console.log('uri1解码前: ' + codeuri1);
console.log('uri1解码后:' + decodeURI(codeuri1));

console.log('uri2解码前: ' + codeuri2);
console.log('uri2解码后:' + decodeURIComponent(codeuri2));


/* 输出
uri1解码前: http://www.baidu.com/tieba/index.html#serch%20134
uri1解码后:http://www.baidu.com/tieba/index.html#serch 134
uri2解码前: http%3A%2F%2Fwww.baidu.com%2Ftieba%2Findex.html%23serch%20134
uri2解码后:http://www.baidu.com/tieba/index.html#serch 134
*/
eval()方法

eval()类似一个完整的es解析器。

当解析器中发现调用eval()的时候,会将传入的参数当作实际的ES语句来解析,然后把执行结果插入到原位置。

eval("function sayRe(){console.log('我的天,热炸了')}");
sayRe();

/* 输出 
我的天,热炸了
*/
Math对象

Math对象是ES为数学公式及信息提供的一个公共位置。
Math对象包含了许多方法,用于辅助完成简单和复杂的数学计算,常用方法:

min()max()

确认一组数值中的最大值和最小值,两个方法都可以任意多个数值参数。

min()max()可以在一组数值中找到最大值和最小值,但不能直接在数组上应用,直接用在数组上会返回NAN.

var arry = [23,13,2,53,6,12,4];

console.log('arry中最小: ' + Math.min(arry));
console.log('arry中最大: ' + Math.max(arry));

console.log(Math.min(23,13,2,53,6,12,4));
console.log(Math.max(23,13,2,53,6,12,4));


/* 输出 
arry中最小: NaN
arry中最大: NaN
2
53
*/

如果要找到数组中的最大最小,需要利用applay方法。

var arry = [23,13,2,53,6,12,4];

var min = Math.min.apply(Math, arry);
var max = Math.max.apply(Math, arry);

console.log(`min = ${min}, max = ${max}`);


/* 输出
min = 2, max = 53
*/


这里就需要来复习一下apply()方法的用途了:


每个函数都包含两个非继承来的方法:apply() 和call().

apply()有两个用途,一个是扩大作用域,第二个就是传参了。

它有一个特性是可以将接收到的数组,转换为一个参数列表形式。

参考资料:https://www.cnblogs.com/chenhuichao/p/8493095.html

所以,在math.min()不支持直接传递数组形式的时候,就可以利用apply()方法可以将数组转化为参数列表的特性,来完成数组找到最大最小值。

转载于:https://www.cnblogs.com/mlcat/p/11503964.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值