一、Object对象原型
该对象是js中所有对象的原型,任何对象都是基于该对象创建的
【Object对象原型的属性】
关键字 | 释义 |
---|---|
prototype | 返回当前对象原型的引用 访问对象原型: 构造方法名.prototype/对象实例.__proto__ |
constructor | 返回当前对象的构造函数/方法 访问对象构造方法: 对象实例.constructor |
【Object对象原型的方法】
关键字 | 释义 |
---|---|
toString | 返回当前对象的字符串表示格式 |
toLocaleString | 返回当前对象的本地字符串表示格式 |
valueOf | 返回当前对象的原始值 |
【注】toString和toLocaleString一般不主动调用,系统自动调用方法(魔术方法)
// Object对象原型(万物之始)
// 对象原型也是对象
// 查看Object对象中的内容,这个内容是Object对应的构造方法
console.log(Object);
// 查看Object对象的原型
console.log(Object.prototype);
// 通过对象实例查找构造方法
// 实例化一个对象obj
var obj=new Object();
// 查看实例的构造方法
console.log(obj.constructor);
// 通过构造方法查找对象原型
var con=obj.constructor;
console.log(con.prototype);
// 通过对象实例查找对象原型(浏览器提供的快捷的对象原型查找方法)
console.log(obj.__proto__); //仅对特定浏览器有效(webkit内核的)
// Object对象原型的方法(对象实例也有)——————————————————————
var obj2=new Object();
console.log(obj.toString(),typeof obj.toString());
console.log(obj.toLocaleString(),typeof obj.toLocaleString());
console.log(obj.valueOf(),typeof obj.valueOf()); //输出对象本身的值
// toString和toLocaleString绝大多数情况下结果一致,绝大多数对象没有本地和通用之分
// 针对特定对象有效的toString和toLocaleString:
var d =new Date();
console.log(d.toString()); //输出世界通用格式字符串
console.log(d.toLocaleString()); //本地化,输出当前地区的格式字符串
console.log(d.valueOf()); //输出时间戳
// toString和toLocaleString一般不主动调用,系统自动调用方法(魔术方法)
console.log(d);
二、Boolean对象
系统创建布尔值时会自动调用当前对象原型,一般不需要用户来实例化布尔对象,而是由js系统自动调用
// Boolean对象原型(构造方法)
// 创建对象实例
var b=new Boolean();
console.log(b);
console.log(b.__proto__);
var bb=true;
console.log(bb); //是布尔类型,也是Boolean的对象实例
console.log(bb instanceof Boolean); //false,系统隐式调用的原型
var bb=new Boolean(true);
console.log(bb); //是布尔类型,也是Boolean的对象实例
console.log(bb instanceof Boolean); //true,表示是布尔对象原型制作的
// 数据类型转换
// new Boolean() 制作一个Boolean的对象实例 【构造方法】
// Boolean(23) 使用Boolean函数转换其他数据为布尔值 【函数】
&& 构造方法 / 方法 / 函数,三者没有本质区别,只是在不同的环境中使用方法不同。
三、Number对象
系统隐式调用对象,用于创建数值。
【Number对象属性】
关键字 | 释义 |
---|---|
constructor | 返回对创建此对象的Number函数的引用 |
MAX_VALUE | 可表示的最大的数 |
MIN_VALUE | 可表示的最小的数 |
NEGATIVE_INFINITY | 负无穷大,溢出时返回该值 |
NaN | 非数字值 |
POSITIVE_INFINITY | 正无穷大,溢出时返回该值 |
【Number对象方法】
关键字 | 释义 |
---|---|
isFinite | 检测指定参数是否为无穷大 |
toExponential(x) | 把对象的值转换为指数计数法 |
toFixed(x) | 把数字转换为字符串,结果的小数点后有指定位数的数字 |
toPrecision(x) | 把数字格式化为指定的长度 |
toString | 把数字转换为字符串,使用指定的基数 |
valueOf | 返回一个Number对象的基本数字值 |
// number对象
// 1.new Number() 是 var no1=99的中间步骤
var no1=new Number(99);
console.log(no1,typeof no1);
// 2.数据类型转换
var no2=Number(true);
console.log(no2);
console.log(Number.prototype);
// 成员属性
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);
console.log(Number.POSITIVE_INFINITY);
console.log(Number.NEGATIVE_INFINITY);
四、Function对象
该对象是系统用来创建函数的对象原型。
// Function对象
// 声明函数形式
function sum(a,b){
return a+b;
}
console.log(sum(5,9));
// 匿名函数形式
var he=function(a,b){
return a+b;
};
console.log(he(9,9));
// 系统隐式调用的操作
var obj=new Function('a','b','return a+b');
console.log(obj(5,3));
五、Global对象
Global对象是系统中的固有对象,全局对象。固有对象就是系统已经实例化完毕的对象,只可以使用不可以创建。
【作用】将系统中的函数全部添加到当前对象中成为当前对象的成员方法,将系统中定义的变量添加到当前对象中成为当前对象的成员属性(作为全局对象来收集用户定义的变量和提供一些常用的方法或函数)
【区分函数和方法】本质上是同一个东西,函数是直接调用的,方法是通过对象调用的。函数也是方法,他是global对象的方法。通常,属于window/global的方法称为函数,其余称为方法。
// Global对象实例:固有对象,本来就是实例的对象,不能new
// Global是js语法中的对象,不能直接使用,必须由解析器(宿主)实现才能使用
// 在浏览器中Global的最终实现为windows对象
console.log(window);
// Global对象自带的方法
// isNaN
var gl=9;
console.log(isNaN(gl)); //函数:直接调用
console.log(window.isNaN(gl)); //方法:通过对象调用
function sum(a,b){
console.log(a+b);
}
sum(3,4); //调用函数
window.sum(3,4); //调用方法
// 函数也是方法,他是global对象的方法,通常,属于window/global的方法称为函数,其余称为方法
// 用户定义变量:所有页面定义的变量都是window对象的成员属性
var aaa=12;
// 用户定义函数:所有页面定义的函数都是window对象的成员方法
function aabaab(){
}
// 用户定义对象:所有页面定义的对象都是window对象的子对象
var abcabc=new Object();
console.log(window); //global
【Global对象的成员方法】
关键字 | 释义 |
---|---|
isNaN() | 检测变量是否是NaN值 |
parseInt() | 字符串转换为整型 |
parseFloat() | 字符串转换为浮点型 |
eval() | 将一行字符串当做js代码执行 |
escape() | 将字符串中的特殊字符进行unicode编码(%xx) |
unescape() | 将unicode编码后的字符串转换为普通字符 |
encodeURI() | 对URL地址编码的函数,不能对特殊符号(/ ? : @ & = + $ , #)编码 |
decodeURI() | 解码encodeURI |
encodeURIComponent() | 能编码特殊字符(/ ? : @ & = + $ , #) |
decodeURIComponent() | 解码encodeURIComponent |
【 关于编码】
ASCII码: 128个常用字符
扩展ASCII码: 标准128个字符上又加128个符号
gb2312: 国标,5000个常用汉字
gbk: 国标扩展,表示绝大多数常用汉字
unicode编码: 混合编码/万国码,utf-n,表示世界上绝大部分语言
// global成员方法
var str1='3+6';
console.log(eval(str1));
// 编码
var str2='小明去上学了';
var res1=escape(str2);
console.log(res1);
var res2=unescape(res1);
console.log(res2);
var url='https://editor.youkuaiyun.com/md?articleId=小王';
var res3=encodeURI(url);
console.log(res3);
var res4=decodeURI(res3);
console.log(res4);