javascript一些底层方法总结及用法

本地对象:ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本地对象就是 ECMA-262 定义的类(引用类型)内置对象:ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。宿主对象:所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。所有 BOM 和 DOM 对象都是宿主对象。enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];// hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
// Ie8以下不支持dom. hasOwnProperty 方法。
// isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。1、hasOwnProperty作用:是用来判断一个对象是否有你给出名称的属性或对象。调用方式:object.hasOwnProperty(proName)参数:object(必须) 对象的实例;proName(必须) 一个属性名称的字符串值注意:如果 object 具有带指定名称的属性,则 hasOwnProperty 方法返回 true,否则返回 false。此方法不会检查对象原型链中的属性。该属性必须是对象本身的一个成员。Internet Explorer 8 和低于其的版本的宿主对象不支持该属性。代码举例:在下面的示例中,所有 String 对象共享一个公共 split 方法。 下面的代码将显示 false 和 true。var s = new String("Sample");console.log(s.hasOwnProperty("split"));console.log(String.prototype.hasOwnProperty("split"));2、in 运算符作用:测试一个对象中是否存在一种属性。调用方式:result = property in object参数:result(必须) 任何变量;proName(必须) 计算结果为字符串表达式的表达式;object(必须) 任意对象注意:in 运算符确定对象中是否有名为 property 的属性。 它还确定属性是否为对象的原型链的一部分。代码举例:code1:var myObject = new Object();myObject.name = "James";myObject.age = "22";myObject.phone = "555 0234";if ("phone" in myObject) {console.log("property is present");} else  {console.log("property is not present");}code2:console.log("toString" in "zheyang");console.log("toString" in new String("zheyang"))思考: var aa = "zheyang" 与 aa = new String("zheyang") 的区别 3、valueOf作用:返回指定对象的原始值。调用方式:object.valueOf();注意:在JS里数字其实都是浮点数。代码举例:var aa = 123 console.log(aa.valueOf())console.log(123.valueOf())console.log(123..valueOf())console.log((123).valueOf())4、typeof作用:返回指定对象的类型。
调用方式:typeof object;代码举例:var aa = 12;var bb = new Number(12)console.log(typeof aa)console.log(typeof bb)5、instanceof作用:返回一个布尔值,该值指示一个对象是否为特定类或构造函数的一个实例。调用方式:object instanceof class;参数:object(必须) 一个对象;class(必须) 任何对象类或构造函数;注意:如果 object 是 class 或构造函数的实例,则 instanceof 运算符返回 true。如果 object 不是指定类或函数的实例,或者 object 为 null,则返回 false。JavaScript Object 很特殊,当且仅当对象用 Object 构造函数构造时,对象才被视为 Object 的实例。代码举例:function ClassA() {}function ClassB() {}ClassB.prototype = {constructor: ClassA}function ClassC(){ClassA.call(this);}function ClassD(){}var obj = new ClassAvar obj2 = new ClassB;var obj3 = new ClassC;ClassD.prototype = obj2;var obj4 = new ClassD;console.log(obj instanceof ClassA)console.log(obj2 instanceof ClassB)console.log(obj2 instanceof ClassB)console.log(obj3 instanceof ClassA)console.log(obj4 instanceof ClassA)console.log(ClassA instanceof Function)6、isPrototypeOf作用:确定一个对象是否存在于另一个对象的原型链中。调用方式:prototype.isPrototypeOf(object)参数:prototype(必须) 对象原型;object(必须) 另一个对象,将对其原型链进行检查注意:如果 object 的原型链中具有 prototype,则 isPrototypeOf 方法返回 true。原型链用于在同一个对象类型的不同实例之间共享功能。当 object 不是对象或当 prototype 没有出现在 object 的原型链中时,isPrototypeOf 方法返回 false。代码举例:function Rectangle() {}var rec = new Rectangle();cosole.log(Rectangle.prototype.isPrototypeOf(rec));7、propertyIsEnumerable作用:返回布尔值,该值指示指定属性是否为对象的一部分以及该属性是否是可枚举的。调用方式:object.propertyIsEnumerable(propName)参数:object(必须) 对象实例;propName(必须) 一个属性名称的字符串值;注意:如果 propName 存在于 object 中且可以使用一个 For...In 循环枚举出来,则 propertyIsEnumerable 属性将返回 true。如果 object 不具有所指定名称的属性或者所指定的属性不是可枚举的,则 propertyIsEnumerable 属性将返回 false。通常,预定义的属性不是可枚举的,而用户定义的属性总是可枚举的。propertyIsEnumerable 属性不考虑原型链中的对象。代码举例:var a = new Array("apple", "banana", "cactus");var s = a.propertyIsEnumerable(1);console.log (s);8、toString / toLocaleString作用:可把一个对象转换为字符串,并返回结果。调用方式:object.toString(num)参数:object(必须) 对象;num(非必须) ;注意:如果对象是数子,则参数可为要转换的进制数,默认为10如果是布尔类型,则会转换为对应的字符串代码举例:var aa = 123console.log(aa.toString(2))var bb = new Boolean(true)console.log(bb)9、constructor代码举例: constructor.parent 10、 Function 与 ObjectFunction:首先回顾一下函数对象的概念,函数就是对象,代表函数的对象就是函数对象。
所有的函数对象是被Function这个函数对象构造出来的。
也就是说,Function是最顶层的构造器。
它构造了系统中所有的对象,包括用户自定义对象,系统内置对象,甚至包括它自已。
这也表明Function具有自举性(自已构造自己的能力)。
这也间接决定了Function的[[call]]和[[constructor]]逻辑相同。Object:对于Object它是最顶层的对象,所有的对象都将继承Object的原型,
但是你也要明确的知道Object也是一个函数对象,
所以说Object是被Function构造出来的。代码举例:
alert(Function instanceof Function);//true 
alert(Function instanceof Object);//true    
alert(Object instanceof Function);//true 
function Foo() {};
var foo = new Foo();
alert(foo instanceof Foo); // true
alert(foo instanceof Function); // false
alert(foo instanceof Object); // true
alert(Foo instanceof Function); // true
alert(Foo instanceof Object); // true

 

转载于:https://www.cnblogs.com/haohaoday/p/3944987.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CES新观察:智能应用全面开花 “陆海空”新品值得关注

来源:网易科技2019年国际消费性电子展(以下简称“CES展”)即将在美国拉斯维加斯落下帷幕,今年是CES走过的第52个年头,虽然已过了“知天命”的年纪,但这丝毫没有影响其在科技行业的影响力和创新力&#xff0…

BZOJ 1606: [Usaco2008 Dec]Hay For Sale 购买干草

1606: [Usaco2008 Dec]Hay For Sale 购买干草 Description 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包干草…

BCG、阿里、百度联合发布中国互联网经济白皮书2.0,解读“中国互联网新篇章:迈向产业融合”...

来源:阿里研究院2017年9月13日,BCG携手阿里研究院、百度发展研究中心和滴滴政策研究院共同发布了中国互联网经济白皮书1.0,第一次全面解读了中国互联网的“中国特色”。该报告一经发布就在业界备受关注,仅在微信公众号上就吸引了超…

用户代码未处理EntityCommandExecutionmException报错解决方案

原因可能是(1)没有编译好,清理解决方案,重新生成解决方案。 (2)可能是WebSiteConfiguration.DbProviderName;中为DbProviderName属性赋值的时候可能从配置文件读设置,但是配置配置文件…

深度学习已经触底?这篇文章的观点令人信服吗?

来源:机器之心摘要:AI 迎来另一寒冬?这是 2018 年下半年至今我们一直能听到的一种声音。这类唱衰的文章一经发布,总是能博人眼球。这篇发表在 Medium 上的文章探讨了 AI 的历史和现在,泛谈了深度学习的局限性&#xff…

Leetcode unique-paths

转载自:http://blog.csdn.net/linhuanmars/article/details/22126357 原题链接: http://oj.leetcode.com/problems/unique-paths/ 这道题是比较典型的动态规划的题目。模型简单,但是可以考核动态规划的思想。我们先说说brute force的解法,…

阿里商业操作系统重磅发布!新零售绝对不止是零售层面的问题

来源:物联网智库摘要:2019年1月11日,阿里巴巴one商业大会在杭州隆重召开,阿里巴巴CEO张勇发表了题为《阿里巴巴商业操作系统》的主题演讲,并将此次大会称为“数字经济时代的网商大会”。会上,张勇宣布——在…

PHP操作MongoDB GridFS 存储文件

PHP操作MongoDB GridFS 存储文件&#xff0c;如图片文件 我的测试代码&#xff1a; 1、前端上传文件html index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">…

JS入门程序(一)

程序代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><title>Bootstrap 101 Template</title><link href"css/bootstrap.min.css" rel"stylesheet" media"screen"></head><…

Oracle运行set autotrace on报错SP2-0618、SP2-0611

SQL> set autotrace on SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错 原因: PLUSTRACE角色不存在 解决办法&#xff1a; conn / as sysdba %ORACLE_HOME%\sqlplus\admin\plustrce.sql grant plustrace to hr; 转载于:https…

万字长文回顾智能驾驶进化史

来源&#xff1a;软件定义世界&#xff08;SDX&#xff09;作者&#xff1a;吴甘沙、张玉新摘要&#xff1a;当卡尔 本茨发明汽车&#xff0c;人类进入汽车时代时&#xff0c;科学技术就对人类的 “ 出行 ” 进行了新的定义&#xff0c;而随着技术的不断发展与进步&#xff0c…

组合数学基本工具-- 排列与组合以及简单公式

排列 从n个不同元素中任取m&#xff08;m≤n&#xff09;个元素&#xff0c;按照一定的顺序排列起来&#xff0c;叫做从n个不同元素中取出m个元素的一个排列。当mn时所有的排列情况叫全排列。 P(n,m)n(n-1)...(n-m1)n!/(n-m)! 特别的&#xff0c;定义0!1 组合 组合公式是指从…

atitit.动态加载数据库配置in orm hibernate mybatis

atitit.动态加载数据库配置in orm 1. 动态加载数据库配置的优点::: 1 1.1. 组合多个配置文件... 1 1.2. 连接多个数据库 1 2. 基本的流程:::getCfg内存对象,,,,生成工厂类,在opoenSession 1 2.1. Hibernate动态添加配置流程 1 2.2. mybatis动态添加配置流程 1 2.3. #hb code 2 …

重磅!德勤TMT行业2019十大预测,遍地黄金的中国机会

来源&#xff1a;智东西摘要&#xff1a;着眼于全球科技、传媒和电信行业在未来5年的关键趋势&#xff0c;分析颠覆性技术变革及未来可能会影响行业内企业的因素。全球最大的会计事务所德勤于近日发布了《2019科技、传媒和电信行业预测》报告&#xff0c;该报告着眼于全球科技、…

组合数学-- 放回取样基础公式证明

放回取样 用CR(m , r) 表示放回取样或者重复取样时一个m集合的r组合的数量&#xff0c;例如在允许放回取样的情况下&#xff0c;集合{a , b}的4个元素的组合可以得到下面的结果&#xff1a; {a,a,a,a}, {b,b,b,b}, {a,a,a,b}, {a,a,b,b}, {a,b,b,b} 下面我们给出可放回取样…

PHP环境安全性能检查

PHP环境安全性能检查 PHP在Linux环境下安全配置是一个复杂的过程&#xff0c;其中涉及到很多的细节设置&#xff0c;在这里发出来一个脚本&#xff0c;通过这个脚本来检测你的PHP环境是否存在安全隐患&#xff0c;从而针对这些对你的PHP环境进行加固。功能&#xff1a; 1.检测P…

集合的所有子集的算法

转载自&#xff1a;http://blog.csdn.net/yzl20092856/article/details/39995085 求集合的所有子集的算法 对于任意集合A&#xff0c;元素个数为n&#xff08;空集n0&#xff09;&#xff0c;其所有子集的个数为2^n个 如集合A{a,b,c},其子集个数为8&#xff1b;对于任意一个…

经济学人: Arm,孙正义手中的这只水晶球正在帮助他预测未来

来源&#xff1a;经济学人编译&#xff1a;机器之能 高璇摘要&#xff1a;除了看中 Arm 出色的盈利能力&#xff0c;对于孙正义来说&#xff0c;Arm 更像是未来计算应用的信息交换中心&#xff0c;虽然不能给软银具体的投资建议&#xff0c;但 Arm 确实可以告诉孙正义有前景、值…

C++开源项目

转载自&#xff1a;http://www.cnblogs.com/liinux/ 程序员要站在巨人的肩膀上&#xff0c;C拥有丰富的开源库&#xff0c;这里包括&#xff1a;标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 github:https://github.com/fffaraz/awesome-…

深入浅出浮点数

1. 什么是浮点数在计算机系统的发展过程中&#xff0c;曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数&#xff08;Fixed Point Number&#xff09;。在这种表达方式中&#xff0c;小数点固定的位于实数所有数字中间的某个位置。货币的表达就可以使用这种方式&am…