you don't know JavaScript(1)

you don't know JavaScript

object

  1. 对象的两种创建方式

字面量的方式,new操作符创建

  1. 在对象中引用、创建、其他对象或函数的本质含义

都只是对函数的引用,函数不属于任何对象。

  1. 对象的属性描述符有哪些?

vaule

writable

configurble

enumberable

get

set

  1. 对对象进行一些限制性操作:冻结、常量化、封装、密封;不同的操作之间的联系?

常量化:writable:false;configurable:false;

禁止扩展:Object.preventExtensions();

密封:Object.seal();世家还是那个等于:Object.preventExtensions() + configurable:false;

冻结:Object.freeze();等于将对象密封后且不可读,即Obejct.seal() + writable:false;

  1. 访问对象属性和查找对象属性的本质?

通过描述符中set get去操作

  1. 对对象属性的遍历和对数组的遍历有何不同?

对属性的遍历相当于对索引的遍历,而数组也可以对索引进行遍历,但我们往往最关心的是数组的值,所以存在遍历数组值得方法

  1. enumerable 可控制对象的属性是否可以出现在遍历中,为false时属性不会出现在for in 循环中

  2. 反问对象的属性,和访问一个变量在内部机制上有什么不同?

当访问一个对象及其原型链中不存在的属性时,会返回undefined,但访问一个当前词法作用域中不存在的变量时,会抛出一个ReferenceError异常。

  1. 检查一个对象中是否有某属性的两种方法?

  2. in 方法可以检测对象中的属性是否存在,问什么不能检测数组中是否有某值?

  3. for in 循环遍历的是什么?为什么不能用它来遍历数组中的值?

  4. 涉及Object 属性的一些操作方法有哪些?

  5. 去查找对象的属性时,若对象中不存在该属性会顺着原型链回溯去查找该属性值,怎样区别属性是对象自身的属性还是原型链上的属性?

Object.hasOwnPeoperty( );

  1. 什么是深不变性和浅不变性?

  2. in操作和Object.hasOwnProperty( )的区别?

(property in Object)会检查该property是否存在于对象中以及它的原型链中;(in操作符只会检查属性名是否存在,而不会检查值,所以不要用in操作符来检查数组中的值)

Object.hasOwnPropery()只会检查该property是否在在该对象中而不会延伸到对象的prototype中去。

  1. 在对象和数组中应用for-in操作有什么不同?

由于for-in不仅会遍历值得索引,还会遍历所有属性,所以如果用for-in来遍历数组可能会造成数值和属性混杂的问题。

--

  • JavaScript中9种内置对象类型和5种基本类型?

JavaScript中的内置对象实际上是一些内置的函数,通过内置函数、new操作符可以创建一个对应子类型的对象。通过字面量创建和通过内置函数创建的不同点在于使用 typeof 检测出来的类型不一样,如:


var str1 = 'i am a coder';

var str2 = new String("i am a coder");

typeof str1;//string

typeof str2;//object

str1 instanceof String;//true

str2 instanceof object;//false

但内置对象中的null 、 undefined属于特殊情况,它们只有自己的文字形式而没有构造形式。

  • 对象的属性名都是字符串,即便是数组也是如此,数组的下标就可以理解成是对象的属性名,它们都是字符串形式。

  • 理解在对象中引用函数的本质,如:


var person = {

name:['jack','lina','ellon'],

findId:function() {

...//具体的函数操作

},

searchTel:searchTel

};

function searchTel() {

...//具体函数操作

};

从技术角度讲,函数永远不属于任何对象####

具体讲:对象中属性访问的函数和其他函数没有任何区别,(除了可能发生的隐式绑定this外);上面代码块中的findId 和searchTel 都是对两个不同的函数的引用,都不能说是属于person这个对象,即便findId是在person中定义的。

  • 数组也属于对象,所以也可以给数组添加新属性,但给数组添加一个命名属性并不会增加数组的长度(这个新属性的属性名要看起来不是一个整数),如果你给Array 添加的新属性的属性名看起来像一个整数,则JavaScript引擎会把它当做是数组的新值得下标,数组的Length也会随之增长。

  • 属性描述符有哪些?

configurable

enumberable

writable

value

get

set

  • configurble:false;可以禁止对属性的属性描述符进行更改,包括删除该属性;但可以对该属性重新赋值。

  • delete 可以用来删除属性,但delete仅仅只是删除而已,并不具备释放内存的功能。

对象的一些操作方法:

Object.assign()

Object.defineProperty()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,238评论 0 4
  • 参考基础教程的整理,方便记忆 一、Object对象 (O大写) 所有其他对象都继承自这个对象。Object本身也是...
    Viaphlyn阅读 2,330评论 0 0
  • 每个人都会有一段异常艰难的时光,生活的窘迫,工作的失意,学业的压力,爱的惶惶不可终日。挺过来的,人生就会豁然开朗;...
    锦时梦浅阅读 537评论 0 1
  • 今天我在学校在读书我们还玩我又交了新朋友嗯交了三个交了三个新朋友我和同学们玩得很开心上午我们还跳五我们跳了兔子舞在...
    付晨璨阅读 101评论 0 0