• javaScript的几个问题简答


    1.javascript的typeof返回哪些数据类型
        Object、number、 function、 boolean、 underfind

    2.例举3种强制类型转换和2种隐式类型转换?
        强制(parseInt,parseFloat,number)
        隐式(== – ===)

    3.split() join() 的区别
        split()方法:用于把一个字符串分割成字符串数组.
        join() 方法用于把数组中的所有元素放入一个字符串。
       (总结:前者是切割成数组的形式,后者是将数组转换成字符串);

    4.数组方法pop() push() unshift() shift()
        Push()尾部添加; pop()尾部删除;
        Unshift()头部添加; shift()头部删除;

    5.事件绑定和普通事件有什么区别?
       事件绑定就是针对dom元素的事件,绑定在dom元素上
       普通事件即为非针对dom元素的事件;
      例如:
      普通事件
        var btn = document.getElementById("hello");
        btn.onclick = function(){
             alert(1);
        };
        btn.onclick = function(){
             alert(2);
        }; //这个事件只会弹出2;

      事件绑定
       var btn = document.getElementById("hello");
       btn.addEventListener("click",function(){
           alert(1);
       },false);
       btn.addEventListener("click",function(){
           alert(2);
       },false); //这个事件首先会弹出1,然后在弹出2;


    6.IE和DOM事件流的区别?
       1.执行顺序不一样;
       2.参数不一样;
       3.事件加不加on;
       4.this指向问题;

    7.IE和标准下有哪些兼容性的写法
       var ev = ev || window.event
       document.documentElement.clientWidth || document.body.clientWidth
       var target = ev.srcElement||ev.target

    8.ajax请求的时候get 和post方式的区别?
       1、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;
            post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程;
       2、Get请求有如下特性:它会将数据添加到URL中,通过这种方式传递到服务器,通常利用一个问号?代表URL地址的结尾与数据参数的开端,后面的参数每一个数据参数以“名         称=值”的形式出现,参数与参数之间利用一个连接符&来区分。

            Post请求有如下特性:数据是放在HTTP主体中的,其组织方式不只一种,有&连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
       3、get传送的数据量较小,不能大于2KB;
            post传送的数据量较大,一般被默认为不受限制。但理论上,因服务器的不同而异.
       4、get安全性非常低,post安全性较高;
      (总结:
           一个在url后面 一个放在虚拟载体里面
          有大小限制
          安全问题
          应用不同 一个是论坛等只需要请求的,一个是类似修改密码的)

    9.call和apply的区别?
         相同点:两个方法产生的作用是完全一样的
         不同点:方法传递的参数不同
         Object.call(this,obj1,obj2,obj3)调用一个对象的一个方法,以另一个对象替换当前对象
         Object.apply(this,arguments)应用某一对象的一个方法,用另一个对象替换当前对象。

    10.ajax请求时,如何解释json数据?
        使用eval parse 鉴于安全性考虑 使用parse更靠谱

    11.b继承a的方法?
        b.prototype=new a;

    12.写一个获取非行间样式的函数
        

    function getStyle(obj,attr,value){

    if(!value){

    if(obj.currentStyle){

    return obj.currentStyle(attr)

    }else{

    obj.getComputedStyle(attr,false)

    }

    }else{

    obj.style[attr]=value
    }
    }

    13.事件委托是什么?
         让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!
         事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document);
         jQuery为绑定和委托事件提供了.bind()、.live()和.delegate()方法;
         http://www.tuicool.com/articles/zQVvau 例子可见此链接

    14.闭包是什么,有什么特性,对页面有什么影响?
         闭包就是能够读取其他函数内部变量的函数。
         http://blog.csdn.net/gaoshanwudi/article/details/7355794 此链接可查看(问这个问题的不是一个公司)

    15.如何阻止事件冒泡和默认事件?
         canceBubble return false
         查看 http://www.2cto.com/kf/201412/359961.html 案例

    16.添加 删除 替换 插入到某个接点的方法?
         obj.appendChidl()
         obj.innersetBefore
         obj.replaceChild
         obj.removeChild

    17.解释jsonp的原理,以及为什么不是真正的ajax?
        动态创建script标签,回调函数
        Ajax是页面无刷新请求数据操作

    18.javascript的本地对象,内置对象和宿主对象?
       本地对象为array obj regexp等可以new实例化
       内置对象为gload Math 等不可以实例化的
       宿主为浏览器自带的document,window 等

    19.document load 和document ready的区别?
       Document.onload 是在结构和样式加载完才执行js
       Document.ready原生种没有这个方法,jquery中有 $().ready(function)

    20.”==”和“===”的不同?
       前者会自动转换类型
       后者不会

    21.javascript的同源策略?
       一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

    22.编写一个数组去重的方法。
    function oSort(arr)
    {
    var result ={};
    var newArr=[];
    for(var i=0;i<arr.length;i++)
    {
    if(!result[arr])
    {
    newArr.push(arr)
    result[arr]=1
    }
    }
    return newArr
    }

  • 相关阅读:
    用原生JS判断素(质)数,并找出100~1000之间的所有素(质)数
    用原生JS找出所有的水仙花数
    break、continue和return语句的区别
    用原生JS写16进制随机颜色
    JavaScript函数
    JavaScript数组
    JavaScript流程控制
    新的开始,新的历程
    异常处理
    DictionaryBase
  • 原文地址:https://www.cnblogs.com/wdxue/p/6830759.html
Copyright © 2020-2023  润新知