• js、jQuery、ajax面试题


    1.javascript的typeof返回哪些数据类型.

    答案:string,boolean,number,undefined,function,object

    2.例举3种强制类型转换和2种隐式类型转换?

    答案:强制(parseInt,parseFloat,number)

    隐式(=====)

    3.split()join()的区别

    答案:前者是将字符串切割成数组的形式,后者是将数组转换成字符串

    4.数组方法pop()push()unshift()shift()

    答案:push()尾部添加pop()尾部删除

    unshift()头部添加shift()头部删除

    5.IE和标准下有哪些兼容性的写法

    答案:

    Var ev=ev||window.event

    document.documentElement.clientWidth||document.body.clientWidth

    Var target=ev.srcElement||ev.target

    6.ajax请求的时候get和post方式的区别

    答案:1、一个在url后面,一个放在虚拟载体里面

    2、get有大小限制(只能提交少量参数)

    3、安全问题

    4、应用不同,请求数据和提交数据

    7.call和apply的区别

    答案:Object.call(this,obj1,obj2,obj3)

    Object.apply(this,arguments)

    8.ajax请求时,如何解析json数据

    答案:使用JSON.parse

    9.事件委托是什么

    答案:利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!

    10.闭包是什么,有什么特性,对页面有什么影响

    答案:闭包就是能够读取其他函数内部变量的函数,使得函数不被GC回收,如果过多使用闭包,容易导致内存泄露

    11.如何阻止事件冒泡

    答案:ie:阻止冒泡ev.cancelBubble=true;非IEev.stopPropagation();

    12.如何阻止默认事件

    答案:(1)return false;(2)ev.preventDefault();

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

    答案:

    1)创建新节点

    createElement()//创建一个具体的元素

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

    2)添加、移除、替换、插入

    appendChild()//添加

    removeChild()//移除

    replaceChild()//替换

    insertBefore()//插入

    3)查找

    getElementsByTagName()//通过标签名称

    getElementsByName()//通过元素的Name属性的值

    getElementById()//通过元素Id,唯一性

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

    答案:动态创建script标签,回调函数

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

    15.document load和document ready的区别

    答案:document.onload是在结构和样式,外部js以及图片加载完才执行js

    document.ready是dom树创建完成就执行的方法,原生种没有这个方法,

    jquery中有$().ready(function)

    16.””和“=”的不同

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

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

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

    答案:在Javscript中,解析器在向执行环境中加载数据时,对函数声明和函数表达式并非是一视同仁的,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析执行。

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

    varUser={

    count:1,

    getCount:function(){

    return this.count;

    }

    };

    console.log(User.getCount());

    var func=User.getCount;

    console.log(func());

    问两处console输出什么?为什么?

    答案:是1和undefined。

    func是在window的上下文中被执行的,所以不会访问到count属性。

    19.看下面代码,给出输出结果。

    for(vari=1;i<=3;i++){//建议使用let可正常输出i的值

    setTimeout(function(){

    console.log(i);

    },0);

    };

    答案:4     4    4

    原因:Javascript事件处理器在线程空闲之前不会运行。

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

    box.onlick=function(){}

    box.addEventListener("click",function(){},false);

    <buttononclick="xxx()"></button>

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

    答案:1、“事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播

    2、“事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的

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

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

    var a=null;

    alert(typeof a);

    答案:object

    解释:null是一个只有一个值的数据类型,这个值就是null。表示一个空指针对象,所以用typeof检测会返回”object”。

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

    答案:Var reg=/^[a-zA-Z]w{5,29}$/;

    24.回答以下代码,alert的值分别是多少?

    <script>

    Var a=100;

    functiontest(){

    alert(a);

    a=10;//去掉了var就变成定义了全局变量了

    alert(a);

    }

    test();

    alert(a);

    </script>

    正确答案:100,10,10

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

    全局变量:当前页面内有效

    局部变量:函数方法内有效

    26.null和undefined的区别?

    1、null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

    2、当声明的变量还未被初始化时,变量的默认值为undefined。null用来表示尚未存在的对象。

    3、undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

    (1)变量被声明了,但没有赋值时,就等于undefined。

    (2)调用函数时,应该提供的参数没有提供,该参数等于undefined。

    (3)对象没有赋值的属性,该属性的值为undefined。

    (4)函数没有返回值时,默认返回undefined。

    null表示"没有对象",即该处不应该有值。典型用法是:

    (1)作为函数的参数,表示该函数的参数不是对象。

    (2)作为对象原型链的终点。

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

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

    2、属性和方法被加入到this引用的对象中。

    3、新创建的对象由this所引用,并且最后隐式的返回this。

    28.js延迟加载的方式有哪些?

    defer和async、动态创建DOM方式(创建script,插入到DOM中,加载完毕后callBack)、按需异步载入js

    29.Flash、Ajax各自的优缺点,在使用中如何取舍?

    Flashajax对比:

    (1)Flash适合处理多媒体、矢量图形、访问机器;对CSS、处理文本上不足,不容易被搜索。

    (2)ajax对CSS、文本支持很好,支持搜索;多媒体、矢量图形、机器访问不足。

    共同点:与服务器的无刷新传递消息、用户离线和在线状态、操作DOM

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

    functiongetStyle(obj,attr){

    if(obj.currentStyle){

    return obj.currentStyle[attr];

    }else{

    getComputedStyle(obi,false)[attr];

    }

    }

  • 相关阅读:
    u-boot下延时程序失效的bug调试
    tiny4412u-boot烧写及根文件系统制作(不进入终端问题)
    tiny4412学习笔记-将uboot、zImage、文件系统烧到emmc中 (转)
    Tiny4412 U-BOOT移植(转)
    为何ARM linux会引入Device Tree(转)
    嵌入式开发社区
    基于tiny4412的u-boot移植(二)(转)
    ARM Linux 3.x的设备树(Device Tree)(转)
    HTML基础-------HTML标签(1)
    HTML基础-------最初概念以及相关语法
  • 原文地址:https://www.cnblogs.com/wangxue13/p/13485218.html
Copyright © 2020-2023  润新知