20210309

83 阅读4分钟
  1. 运算符前置和后置的区别

    i--;这个操作

    前置的话返回他递后之前的值

    后置的话返回递减之前的值

    后置:
    var i = 5;
    var a = i--;
    console.log(i);//输出4
    console.log(a);//输出5
    
    前置:
    var j = 5;
    var b = --j;
    console.log(j);//输出4
    console.log(b);//输出4
    
  2. 【计算题】js调用时,this的计算题

    var color = 'green';
    var test4399 = {
    	color:'bule',
    	getColor:function(){
    		var color = 'red';
    		alert(this.color);
    	}
    }
    var getColor = test4399.getColor;
    getColor();//this指向window
    test4399.getColor();//this指向test4399
    

    打印green和bule

  3. Number(参数)将不同类型转为0

    Number()
    Number(0)
    Number('')
    Number('0')
    Number(false)   
    Number(null)
    Number([])
    Number([0])
    
  4. 用Math函数求一个数组的最大值

    Math.max.apply(null,a)
    
  5. typeof Symbol()    //"symbol"
    typeof Number()    //"number"
    typeof String()    //"string"
    typeof Function()    //"function"
    typeof Object()    //"object"
    typeof Boolean()    //"boolean"
    typeof null    //"object"
    typeof undefined    //"undefined"
    
    • For循环是按顺序的,for in 循环是不一定按顺序的
    • hasOwnProperty(..) 只会检查属性是否在myObject 对象中,不会检查[[Prototype]] 链
    • enctype的默认值是application/x-www-form-urlencoded
    • footer是HTML5标签,foot不是HTML5标签
  6. 页面打开后能够弹出alert(1)的是?

    <iframe src=”javascript: alert(1)”></iframe>
    <img src=”” onerror=”alert(1)”/>
    IE下<s style=”top:expression(alert(1))”></s>
    <div onclick=”alert(1)”></div>//不能打开的原因是div的宽度为0,无法点击
    
  7. relative 生成相对定位的元素,相对于其本身在文档流中的定位来进行定位。

    ​ relative不是相对父元素定位

    在Microsoft Internet Explorer 中,盒模型默认使用的是 border-box,只有在缺少DOCTYPE(文档类型声明)时,在IE6~IE8中会触发怪异模式

  8. 常见的不支持冒泡的事件(失聚焦鼠标移载不载重大小)

    ①focus

    ②blur

    ③mouseenter

    ④mouseleave

    ⑤load

    ⑥unload

    ⑦resize

  9. 哪些技术可用于优化 CSS 图片加载 ?(背)

    1. CSS Sprite:又称为CSS精灵或者雪碧图,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,当访问该页面时,载入的图片就不会像以前那样一幅一幅地慢慢显示出来。主要通过background-position定位,能很好地减少网页的http请求,从而大大的提高页面的性能。

    2. SVG Sprite 体积小,矢量

      【张鑫旭博客】[www.zhangxinxu.com/wordpress/2…]

    3. Icon font:图标字体,也叫字体图标,就是字体做的图标。能自由变化大小,且不会模糊。比图片小,加载快。可以任意改变颜色。

    4. Base64:可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址。图片的下载始终都要向服务器发出请求,而通过base64编码后可以随着 HTML的下载同时下载到本地,减少 http 请求。

  10. 开始拖动元素或选择文本的事件

    Internet Explorer 8 及更早 IE 版本或 Safari 5.1 及更早版本的浏览器不支持 drag 事件

    <p draggable="true" ondragstart="myFunction(event)">拖动我!</p>
    
    <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)">
      <p ondragstart="dragStart(event)" ondragend="dragEnd(event)" draggable="true" id="dragtarget">拖动我!</p>
    </div>
    <div class="droptarget" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
    
    function dragStart(event) {
        event.dataTransfer.setData("Text", event.target.id);
        document.getElementById("demo").innerHTML = "开始拖动 p 元素";
    }
    function dragEnd(event) {
        document.getElementById("demo").innerHTML = "完成 p 元素的拖动。";
    }
    function allowDrop(event) {
        event.preventDefault();
    }
    function drop(event) {
        event.preventDefault();
        var data = event.dataTransfer.getData("Text");
        event.target.appendChild(document.getElementById(data));
    }
    
  11. 正则表达式又错了

    ^ : 匹配字符串的开头;

    $ : 匹配字符串的结尾;

    * ; 出现零次到多次;

    + :出现一次到多次;

    ?: 出现零次或一次;

    . : 除了\n以外的任意字符

    {n} : 出现n次;

    {n,m}: 出现n到m次;

    {n,}: 出现n次到多次

  12. 下列哪些CSS选择器有效或无效

    1. .className a √
    2. .className .a √
    3. a.className a × 标签a不能含有标签a
    4. a.className .a √
    5. span[data-type=1] √
    6. .className:first-child √
    7. div:before √ : 和::都可以
    8. i:span ×
  13. 左移和异或的计算题

    function a(a)
    {
      a^=(1<<4)-1;
       return a;
    }
    

    1<<4 转为二进制为01 左移相当于10000 二进制转为16

    (1<<4)-1 为15 二进制 1111

    ^为异或计算 10二进制 异或运算为比较对应的二进制位是否相同,相同为0,不同为1

    1010

    1111

    0101

    答案为5

  14. JavaScript内部,所有数字都是以64位浮点数形式储存,即使整数也是如此

    一个字节8位 number在JavaScript中为8byte

  15. 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。

  16. Symbol为了解决什么问题(背)

    作为一个独一无二的key, 放置数据的, 防止数据因为重复, 无法存进数据对象中