JS中的单体内置对象+基本包装类

Posted on 2021-03-08 15:01  萌栈师  阅读(116)  评论(0)    收藏  举报

单体内置对象

​ 内置对象:对象已经实例化了,开发者不必显式的实例化内置对象.

​ 例如:Object,Array,String,Global,Math...

1.1 Global(全局)

​ global对象,不管从什么角度看都是不存在的,但实际是存在的一个对象,所有不属于任何对象的属性和方法都是它的。事实上,没有全局变量或全局函数,所有在全局中定义的属性和函数,都是属于Global的属性和函数.

  • URI编码-解码方法

    ​ 有效的URI(网址)不能包含某个字符:空格、中文等,都用UTF8编码替换无效字符

//URI编码
var uri = "http://www.baidu.com?word#中 文";
//方式一:
var encodeByURI = encodeURI(uri);
console.log(encodeByURI);//-->http://www.baidu.com?word#%E4%B8%AD%20%E6%96%87
//方式二:****
var encodeByURIComponent = encodeURIComponent(uri);
console.log(encodeByURIComponent);
//-->http%3A%2F%2Fwww.baidu.com%3Fword%23%E4%B8%AD%20%E6%96%87

encodeURI():用于整个URI:不会对本身属于URI的特殊字符进行编码(冒号,正斜杠,问号,#号)encodeURIComponent():对URI中的某一段进行编码.会对它发现的任何非标准字符进行编码.(更优)

//URI解码
//方式一:
var decodeURI = decodeURI(encodeByURI);
console.log(decodeURI);//-->http://www.baidu.com?word#中 文
//方式二:****
var decodeURIComponent = decodeURIComponent(encodeByURIComponent);
console.log(decodeURIComponent);//-->http://www.baidu.com?word#中 文
  • eval():最强大的方法,但是安全性不好

    ​ 解析器会将传入到eval中的参数当做实际的js语句来解析,然后把执行结果插入到原来位置

//alert(String),传入的参数为string类型
eval("alert('hi!')");//相当于-->alert("hi");

function operator(op){
    var str = 2+op+3;
    return eval(""+str+"");
}
var res = operator("+");
console.log(res);//-->5
  • window

    ​ ECMAScript虽然没有指出如何直接访问global对象,但web浏览器都是将这个全局对象作为window对象的一部分加以实现的。因此,在全局作用域中声明所有的变量和函数,都成了window对象的属性.[BOM对象中详解]

var color="red";
function sayColor(){
    alert(window.color);
}
window.sayColor();
  • parseInt():函数可解析一个字符串,并返回一个整数。可按进制解析。
  • parseFloat():函数可解析一个字符串,并返回一个浮点数。
  • isNaN():函数用于检查其参数是否是非数字值。

1.2 Math

​ js中提供了数学公式和信息,与我们直接写计算功能相比,Math的执行效率要快很多。

//1.常用属性
Math.PI
Math.E
//2.常用方法
max()/min()://找最大,最小
ceil()/floor/round()://舍入方法
random()://随机数 0~ 1
pow(num,power)://求幂
sqrt(num)://开方

2.基本包装类-Boolean,Number,String

​ 每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象,让我们能够调用一些方法来操作这些数据。方法可以直接使用,类似于java.

参考地址:https://www.w3school.com.cn/jsref/index.asp

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3