web前端学习笔记16-js对象原型

一、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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值