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.
JS中常见算法问题的更多相关文章
- js中常见算法
一.面试80%都要问的数组去重 数组去重的方式有多种,其实面试中主要是想靠对对象的理解.还记得我第一次去面试的时候,去重的时候用了2个for循环. //1循环一次 var arr1 = [1,2,3, ...
- js中常见的问题
js中常见的问题 原文链接 1.js获取select标签选中的值 原生js var obj = document.getElementByIdx_x(”testSelect”); //定位id var ...
- JS中常见的几种报错类型
1.SyntaxError(语法错误) 解析代码时发生的语法错误 var 1a; //Uncaught SyntaxError: Invalid or unexpected token 变量名错误 c ...
- JS:JS中常见的 “函数名 is not a function” 错误
js中常见的错误,例如Uncaught TypeError: x is not a function 其原因除了函数本身有错之外,还有一种很奇怪的情况:函数本身没有错,但是运行时就是不能正常运行.这种 ...
- JS中的算法与数据结构——排序(Sort)(转)
排序算法(Sort) 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过.如今又是大数据,云计算的时代,对数据的排序和查 ...
- JS中常见设计模式总结
github: https://github.com/14glwu/FEInterviewBox/tree/master/JS%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F ...
- JS中的算法与数据结构——排序(Sort)
排序算法(Sort) 引言 我们平时对计算机中存储的数据执行的两种最常见的操作就是排序和查找,对于计算机的排序和查找的研究,自计算机诞生以来就没有停止过.如今又是大数据,云计算的时代,对数据的排序和查 ...
- js中常见的数据加密与解密的方法
加密在我们前端的开发中也是经常遇见的.本文只把我们常用的加密方法进行总结.不去纠结加密的具体实现方式(密码学,太庞大了). 常见的加密方式 常见的加密算法基本分为这几类, 线性散列算法(签名算法)MD ...
- Js中常见的内存泄漏场景
常见的内存泄漏场景 内存泄漏Memory Leak是指程序中已动态分配的堆内存由于疏忽或错误等原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果.内存泄漏并非指内 ...
随机推荐
- javascript获取后台传来的json
Mvc Razor视图引擎中 <script type="text/javascript"> var _temp = @(new MvcHtmlString(this. ...
- oracle OTT 学习
1.OTT概念 OTT 是 Object Type Translator 的缩写,对象类型转换器.它是用来将数据库中定义的类型(UDT)转换为C结构体类型的工具.借助OTT 可以用C语言调用OCI来访 ...
- mysql四-1:单表查询
一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键 ...
- html5格式样式
<b> 加粗 <b style="font-size: 100px;">大字体</b>
- xshell连不上虚拟机linux的解决办法
1.找到Linux系统的ip地址 输入命令 ifconfig 2.打开本地网络连接 将VMnet1的ip地址设置为和虚拟机ip同一网段的ip 比如虚拟机Linux系统的ip为 192.168. ...
- CAA介绍(转)
CAA是DS公司正对于其一系列产品,eg:CATIA,ENOVIA,DELIMA,etc,进行二次开发的一个环境.与VC结合的比较紧密.CAAV4是用于Unix/Linux的,到CAAV5才移植到Wi ...
- PWM----调节LED亮度
- - --调节两个LED灯亮度 module led_pwm ( clk, rst, //cnt1_pwm, out1, out2, out3, out4 ); input clk, rst; // ...
- day2 数据结构和一些基础知识
请查看我的云笔记链接: http://note.youdao.com/noteshare?id=4171342601326695ec87866e1cc3e410&sub=20CFB149543 ...
- 西门子 1500 1200 PLC,位访问, 字节访问
访问byte,word中的位 mybyte.%X1 myword.%X1 访问word/dword中的byte myword.%B0 myword.%B1 myDword.%B0 文中mybyte, ...
- C#转Java之路之三:多线程并发容器即线程安全的容器
CopyOnWriteArrayList 和 CopyOnWriteArraySet: 是java中两个比较重要的并发容器.适用于读多于写的场景,且集合数据不太大的场合. 特别是CopyOnWrite ...