加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Javascript口试的美满指南(开拓者视角)

发布时间:2019-02-22 12:07:13 所属栏目:建站 来源:前端小智
导读:为了声名 JS 口试的伟大性,起首,请实行给出以下功效: onsole.log(2.0==2==newBoolean(true)==1) 十有八九的会给出false, 着实运行功效是true,缘故起因请看 这里。 1) 领略 JS 函数 函数是 JavaScript 的英华,是 JS 一等国民。JS 函数不只仅是一个平凡的

思索一下,以下输出的是什么:

  1. function Foo(){  
  2. console.log(this); // 打印 {}?  
  3. }  

由于这是一个全局工具,记着,无论父浸染域是什么,它都将由子浸染域担任。打印出来是 window 工具。上面接头的三个要领现实上用于配置这个工具。

此刻,this 的最后一个范例,在工具中的 this, 如下:

  1. var person = { 
  2.     name: "Stranger", 
  3.     age: 24, 
  4.     get identity() { 
  5.         return {who: this.name, howOld: this.age}; 
  6.     } 
  7. }  

上述行使了 getter 语法,这是一个可以作为变量挪用的函数。

  1. person.identity; // returns {who: "Stranger", howOld: 24} 

此时,this 现实上是指工具自己。正如我们前面提到的,它在差异的处全部差异的示意。

5) 领略工具 (Object.freeze, Object.seal)

凡是工具的名目如下:

  1. var marks = {physics: 98, maths:95, chemistry: 91}; 

它是一个存储键、值对的映射。 javascript 工具有一个非凡的属性,可以将任何对象存储为一个值。这意味着我们可以将一个列表、另一个工具、一个函数等存储为一个值。

可以用如下方法来建设工具:

  1. var marks = {};  
  2. var marks = new Object();  

可以行使 JSON.stringify() 将一个工具转制成字符串,也可以用 JSON.parse 在将其转成工具。

  1. // returns "{"physics":98,"maths":95,"chemistry":91}"  
  2. JSON.stringify(marks);  
  3. // Get object from string  
  4. JSON.parse('{"physics":98,"maths":95,"chemistry":91}');  

行使 Object.keys 迭代工具:

  1. var highScere = 0;  
  2. for (i of Object.keys(marks)) { 
  3.   if (marks[i] > highScore) 
  4.     highScore = marks[i]; 
  5. }  

Object.values 以数组的方法返回工具的值。

工具上的其他重要函数有:

  • Object.prototype(object)
  • Object.freeze(function)
  • Object.seal(function)

Object.prototype 上提供了很多应用上相干的函数,如下:

Object.prototype.hasOwnProperty 用于搜查给定的属性/键是否存在于工具中。

  1. marks.hasOwnProperty("physics"); // returns true  
  2. marks.hasOwnProperty("greek"); // returns false  

Object.prototype.instanceof 判定给定工具是否是特定原型的范例。

  1. function Car(make, model, year) { 
  2.   this.make = make; 
  3.   this.model = model; 
  4.   this.year = year; 
  5. var newCar = new Car('Honda', 'City', 2007); 
  6. console.log(newCar instanceof Car); // returns true  

行使 Object.freeze 可以冻结工具,以便不能修改工具现有属性。

  1. var marks = {physics: 98, maths:95, chemistry: 91};  
  2. finalizedMarks = Object.freeze(marks);  
  3. finalizedMarks["physics"] = 86; // throws error in strict mode  
  4. console.log(marks); // {physics: 98, maths: 95, chemistry: 91}  

在这里,试图修改冻结后的 physics 的值,但 JavaScript不应承这样做。我们可以行使 Object.isFrozen 来判定,给定工具是否被冻结:

  1. Object.isFrozen(finalizedMarks); // returns true 

Object.seal 与 Object.freeze 略有差异。 Object.seal() 要领关闭一个工具,阻止添加新属性并将全部现有属性标志为不行设置。当前属性的值只要可写就可以改变。

  1. var marks = {physics: 98, maths:95, chemistry: 91};  
  2. Object.seal(marks);  
  3. delete marks.chemistry; // returns false as operation failed  
  4. marks.physics = 95; // Works!  
  5. marks.greek = 86; // Will not add a new property  

同样, 可以行使 Object.isSealed 判定工具是否被密封。

  1. Object.isSealed(marks); // returns true 

在全局工具函数上尚有很多其他重要的函数/要领,在这里找到他们。

6) 领略原型担任

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读