面试4(每日打卡)

13. 添加 删除 替换 插入到某个接点的方法

    添加:$("div").appendChild("li")

    删除:$("div").removeChild("li")

    替换:$("div").replaceChild("li")

    插入:$("div").insertChild("li")❌ 获取的dom元素.insertBefore(新元素,获取的dom元素)  把新的元素插入到获取的dom元素.的前面(新的,就的)

    1》创建新的节点:

        document.createElement("div")//创建一个具体的元素

        document.createTextNode()//创建一个文本节点

        元素创建的三种方式:document.write("标签的代码及内容"),对象.innerHTML="标签及内容",document.createElement("标签名")

    2》查找节点

        document.getElementsByTagName()//通过标签名

        document.getElementsByClassName()//通过类名

        document.getElementById()//通过id标识名

        document.querySelector("#id")

        document.querySelectorAll(".class")

14. 解释jsonp的原理,以及为什么不是真正的ajaxs

    jsonp是动态创建script标签,回调函数;

    ajax是页面无刷新请求数据操作

15. document onload 和document ready的区别

    前者是js的,要等页面加载完毕才执行里面的代码,包括等待图片的加载;

    后者是jquery的,要要等页面加载完毕后才执行里面的代码,但是不等待图片的加载;

答案:前者是在结构和样式,外部js以及图片加载完才执行内部的js代码;

   后者是 dom树创建完就执行的方法,原生中没有这个方法,jquery中的;

16. ”==”和“===”的不同

    == 只要值相同就可以了

    ===要类型,值都要相等

答案:==会自动转换类型,再判断是否相等

   后者不会自动转换类型,直接拿去比较

17. 函数声明与函数表达式的区别?

    不知道哦

答案:在javaScript中,解析器会率先读取函数声明,并使用其在执行任何代码之前可以用(可以访问),而函数表达式,则必须等到解析器执行到它所在的代码行,才会被真正解析执行。

区别就是:函数声明率先执行,函数表达式按代码顺序执行

18. 对作用域上下文和this的理解,看下列代码:

var User = {
 count: 1,
 getCount: function() {
  return this.count;
 }
};
console.log(User.getCount()); // what?
var func = User.getCount;
console.log(func()); // what?
问两处console输出什么?为什么?
  1 ,undefined
第一个是因为 是有了user这个对象,在user.getCount,要到前面去找定义的count;
第二个是因为:是将user中的函数拿出来了,直接赋值给func,没有定义的count,就是undefined;


20. 当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做?

  1》box.onclick=function(){}//直接绑定事件
  2》box.addEventListener("click",function(){},false);//绑定监听事件
  3》<button onclick="xxx()"></button>

21. Javascript的事件流模型都有什么?

    冒泡事件:从内到外,触发事件❌

答案:“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播,(从里到外)

   “事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的,(从外到里);

   “DOM事件流”:3个阶段:事件捕捉,目标阶段,事件冒泡

    

    

22. 看下列代码,输出什么?解释原因。

var a = null;
alert(typeof a);
Onject 因为定义a,没有赋值

答案:null是一个只有一个值的数据类型,这个值就是null。标识一个空指针对象,所以用typeof检测会返回object

23. 判断字符串以字母开头,后面可以是数字,下划线,字母,长度为6-30

   str.test(/^[a-zA-Z]\w{5,29}$/)

25. javaScript的2种变量范围有什么不同?

    全局变量:在这个页面中都有效;

    局部变量:在定义这个局部变量的函数里面有效 

答案:全局变量:当前页面有效;局部变量:函数方法内有效

27. new操作符具体干了什么呢?

    创建了一个新的对象❌

答案:(1).创建一个空对象,并且this变量引用该对象,同时还继承了该函数的原型。

   (2).属性和方法被加入到this引用的对象中

   (3).新创建的对象由this所引用,并最后隐式的返回this

31. 希望获取到页面中所有的checkbox怎么做?(不使用第三方框架)

    var Inputs =document.getElemrntsByTag("input");//获取页面中所有的input标签

    var CheckBoxs=[];//定义一个存放checkboxs的空数组

             for(var i = 0; i < Inputs.length ; i++ ){  
      if(Inputs[i].type=="checkboxs"){
            CheckBoxs.push(Inputs[i]);//存放      

      }

 
posted @ 2019-10-20 23:08  Moliy-Moliy  阅读(135)  评论(0编辑  收藏  举报