js笔记-2

2019-02-25  本文已影响0人  MF_遇见零一

清除浮动的方法

浏览器如何判断元素是否匹配某个css选择器?

从后往前判断。浏览器先产生一个元素几个,这个集合往往由最后一个部分的索引产生。然后线上匹配,如果不符合上一个部分,就把不符合的元素从集合中删除,知道整个选择器都匹配完

列出你所知道的display属性

事件代理

利用浏览器的冒泡机制,当需要对很多元素添加事件的时候,可以通过将事件添加到他们的父节点儿将事件委托给父节点来触发处理函数

解释一下js中this是如何工作的

this 永远指向函数运行是所在的对象,而不是函数被创建时所在的对象。匿名函数或不处于任何对象中的函数指向window

js引擎如何查找属性

function getProperty(obj,prop){
  if(obj.hasOwnProperty(prop)){
      return obj[prop]
  }else if(obj.__proto__!==null){
      return getProperty(obj.__proto__,prop)
  }else {
      return undefinded
  }
}

描述一下null和undefined的区别?

null是一个表示‘无’的对象,转为数值时为0,undefined的一个表示‘无’的原始值,转换为数值时为NaN

null用法

undefined用法

call和apply的区别

call和apply的作用相同,都是改变函数内部的this指向,但传参方式不同

在什么时候会使用document.write()?

大多数生成广告的代码依旧使用document.write()

解释变量声明提升

在js里声明的变量,存在于作用量里,而在函数执行时会把变量的声明进行提升,而其值的定义还在原来的位置

function test (){
  console.log(name) // undefined
  var name = 'yjy'
  console.log(name) // yjy
}
// 等价于
function test (){
  var name 
  console.log(name)
  name = 'yjy'
  console.log(name)
}

描述事件的冒泡机制

attribute 和 property的区别

attribute: 是HTML标签上的属性,如id,class,value,必须是字符串类型
property:是js获取的dom对象上的属性值,可以看作一个基本的js对象,value,className,onclick等。通过‘.’获取dom的property

document.onload 和 document.ready 的区别

onload:表示页面包含图片等文件在内的所有元素等加载完成
ready:表示文档结构已经加载完成(不包含图片等非文字媒体文件)

如何实现下列代码:[1,2,3,4,5].duplicator();//[1,2,3,4,5,1,2,3,4,5]

let arr1 = [1, 2, 3, 4, 5];
Array.prototype.duplicator = function() {
  return this.concat(this);
};

let arr2 = arr1.duplicator();
console.log(arr2); // [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
console.log(arr1); // // [1, 2, 3, 4, 5]
上一篇下一篇

猜你喜欢

热点阅读