JavaScript object 类型

🌙
手机阅读
本文目录结构

Object

Object类型包括,数组、正则等等;

寻找Object

var num=2;
console.dir(num);//number 实例
console.dir(num.__proto__);//Number 类
/*
*
* constructor  :Object
*
*
* */

var str="haha";
console.dir(str);//string 实例
console.dir(str.__proto__);//String 类


/*判断是否一致*/
console.log(num.__proto__.__proto__=== str.__proto__.__proto__);//true


//万物皆对象,并不等于只有一个对象类型的;
// Number / String / Object / Boolean

特性

  • 定义:一组数据或功能的集合
  • 声明
    • var o=new Object()//Object后面的()可以省略,但不推荐
    • var o={}
//key:value
//1、字面量的创建方式;推荐的方式
var o={
    name:"zhu",
    say:"hello"
};
console.log(o);//{name: "zhu", say: "hello"}

var oDemo={};
//    oDemo.name1=
if(!oDemo.flagVal){
    oDemo.flagVal="Test"
}
oDemo.name="bang";
oDemo.say="hahahahahahahha";
console.log(oDemo.flagVal);//Test
console.log(oDemo);//{flagVal: "Test", name: "bang", say: "hahahahahahahha"}

//new
var demo1=new Object();//不推荐的使用方法;
demo1.haha="hahahahahahah";
console.log(demo1);//{haha: "hahahahahahah"}

//jQuery的AJAX;
/*var options={
    url:"babababab",
    type:"",
    date:{}
};
$.ajax(options);*/

属性和方法

let obj = {};
obj[foo] = "foo";
obj[bar] = "bar";
JSON.stringify(obj); // {}
Object.keys(obj); // []
Object.getOwnPropertyNames(obj); // []
Object.getOwnPropertySymbols(obj); // [ foo, bar ]
  • constructor:保存用于创建当前对象的函数,构造函数就是Object()
  • HasOwnProperty(propertyName) 检测给定输定在当前对象实例中是否存在(而不是实例的原型中)
  • isPrototypeOf(object) :检测传入的对象是否是另一个对象的原型(而不是在实例中);
  • propertyIsEnumerable(propertyName);检测给定属性是否能用for-in语句每句来枚举;
  • toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应;
  • toString() 返回对象的字符串表示
  • valueOf() 返回对象的字符串,数值或布尔值表示;通常与toString()的值相同;

在ECMAScript中,Object是所有对象的基础,因此所有对象都具有这些基本的属性和方法;方法的具体原理,后面数据类型和原型链中具体说;

BOM/DOM中的对象,都是属于宿主对象,因为他们是由宿主实现提供和定义的,但是ECMAScript不负责定义宿主对象,因此宿主对象可能会也可能不会继承Object;

function Test(opt) {
    //bala bala
}
var testVal=Test({a:"",b:""});

//Array;
var a=[1,2,3,4,5,6,7];//var a=[1,2,3,4,5,6,7,]  低版本浏览器,length的;
console.log(a);//编程语言里,index是以0为开始的;
console.log("第一位,a[0]",a[0]);
console.log(a[1]);
console.log(a.length);//7

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了