zoukankan      html  css  js  c++  java
  • JS中常见算法问题

    JS中常见算法问题

    1. 阐述JS中的变量提升(声明提前)

    答:将所有的变量提升当当前作用域的顶部,赋值留在原地。意味着我们可以在某个变量声明前就使用该变量。
    虽然JS会进行变量提升,但并不会执行真正的初始化过程。
    按值传递:两变量间赋值,或向函数中传递参数时,都是将原变量中的值复制一个副本给对方,修改一方,另一方不受影响。
    引用类型的对象之间相互赋值时,只是将地址赋值给了对方,因此改变原对象中的内容,由于地址并未发生改变,因此也会引发新变量内容的改变。

    2.阐述use strict;的作用

    答:指定浏览器按照严格模式去渲染。优势:强制开发者避免使用未声明的变量。对于老版本的浏览器或者执行引擎会自动忽略该指令。

    3.解释什么是事件冒泡,处理方式

    答:即某个事件不仅会触发当前元素,还会以嵌套顺序传递到父元素中。
    关于事件流:IE提出冒泡流,即由内到外;网景提出了捕获流,即由外向内。
    一个完整的JS事件流,是从window开始,最终回到window的一个过程。
    事件流的三个阶段:1.捕获阶段,2.目标阶段,3.冒泡阶段。

    防止冒泡和捕获:
    w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true
    ```
    function stopBubble(e) { 
        //如果提供了事件对象,则这是一个非IE浏览器 
        if ( e && e.stopPropagation ) {
            //因此它支持W3C的stopPropagation()方法 
            e.stopPropagation();
        } else {
            //否则,我们需要使用IE的方式来取消事件冒泡 
            window.event.cancelBubble = true;
        }    
    }
    ```
    取消默认事件
    w3c的方法是e.preventDefault(),IE则是使用e.returnValue = false;
    ```
    //阻止浏览器的默认行为 
    function stopDefault( e ) { 
        //阻止默认浏览器动作(W3C) 
        if ( e && e.preventDefault ){
            e.preventDefault(); 
        } else {
            //IE中阻止函数器默认动作的方式
            window.event.returnValue = false;
        }     
        return false; 
    }
    ```
    

    4.

  • 相关阅读:
    颜色转换
    颜色转换、随机、16进制转换、HSV
    ColorTransform调整显示对象的颜色值
    unity+统计代码总行数
    Unity加载json数据
    打不开unity编辑器界面,每次默认打开上一次项目,并且报错Error loading file:///C%3A%2FUsers%2FT01017%2FAppData%2FRoaming%2FUnity%2FPackages%2Fnode_modules%2F
    Unity 同一Text文本修改不同的字体大小和字体颜色,加空格
    Unity 限时使用 限制试用时间和使用次数
    unity更改文字透明度
    unity+动画状态机
  • 原文地址:https://www.cnblogs.com/nanhuaqiushui/p/10520706.html
Copyright © 2011-2022 走看看