JavaScript学习笔记6 之经典神坑题整理
本篇内容是关于容易出错题的整理,这些题也有利于对javascript的语法逻辑的理解,分析的内容仅供参考:
<script>
/**/
var x=0 , y=0 , c=1;
function add(n) {n=n+1;}
x=add(c);
alert(x);//
function add(n) {n=n+3; return n;}
y=add(c);
alert(y);// //执行过程
var x;//变量和函数都提前声明
var y;
var c;
// function add(n) {n=n+1;}//被覆盖,不会调用此函数
function add(n) {n=n+3; return n;}//函数名相同的函数都提前声明,后面的覆盖前面的
x=0;
y=0;
c=1;
x=add(c);//4 c作为形参传入函数,
alert(x);//
y=add(c);//
alert(y);// /**/ var i=5,k,x;
k=++i;//先加后赋值
i=i++;//先赋值给i再+1,此时被赋值的i为6,复制后自+1
alert(k);//6
alert(i);// /*3、逗号操作符 */
//逗号操作符中有多条语句时,执行后面语句
if (1,0) {//返回0
alert('123');
} else{
alert('abc');
};//abc if (0,-2) {//返回-2
alert('123');
} else{
alert('abc');
};// var k=0;
for(var i=0, v=0; i<9, v<6; i++, v++){//返回v<6
k = i + v;
}
alert(k);// var k=0;
for(var i=0, v=0; i<6, v<9; i++, v++){//返回v<9
k = i + v;
}
alert(k);// /*4、异步事件*/
for (var i = 0; i < 5; i++) {
setTimeout(function (){//异步代码
console.log(i);//打印 5个5
},0);
}; for (var i = 0; i < 5; i++) { };
setTimeout(function (){//异步代码
console.log(i);//打印1个5
},0); function fn(){
console.log('first' );
setTimeout(function (){//同步代码执行完之后才执行异步代码
console.log( 'second' );
},0);
}
for (var i= 0; i < 5; i++) {
fn();
}
//first first first first first second second second second second
//前5个first是for循环执行5次打印事件
//后5个second是for循环执行5次,分别将异步事件分5次放在队列里面,最后执行异步事件 /*5、计时器是异步事件后执行问题*/
var t = true,x = 5;//执行1
setTimeout(function (){//执行4、计时器进入异步队列,先不执行,最后执行。
t = false;
alert(x);
x = 6;
},300);
while (t){ x = 8; }//执行2-->此处陷入死循环
alert(x);//执行3
//死循环
</script>
JavaScript学习笔记6 之经典神坑题整理的更多相关文章
- Java程序猿的JavaScript学习笔记(1——理念)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
随机推荐
- [java] 汇率换算器实现(3)
[java] 汇率换算器实现(3) // */ // ]]> [java] 汇率换算器实现(3) Table of Contents 1 系列文章地址 2 前言 3 提取简单表单信息 3.1 ...
- SQL Server 2016的数据库范围内的配置
SQL Server 2016真的让人眼前一亮.几天前微软就提供了RCO(候选发布版)版本的下载.我已经围观了一圈RCO版本,其中一个最拽的功能是数据库范围内的配置(Database Scoped C ...
- 如何做好一个ORM框架
很多人都不太认可以第三方ORM,因为考虑的点不够全面,没有用户群体大的ORM有保证,这点是不可否认确是事实. 但是往往用户群体大的ORM又有不足之处,就拿用户群体最多的两个ORM来说一下吧 1.EF ...
- laravel5如何创建service provider和facade
laravel5如何创建service provider和facade laravel5创建一个facade,可以将某个service注册个门面,这样,使用的时候就不需要麻烦地use 了.文章用一个例 ...
- 矢量化的HTML5拓扑图形组件设计
HT一直被客户称道的就是其全矢量化的设计特色,矢量相比传统图片好处太多了: www.hightopo.com/guide/guide/core/vector/ht-vector-guide.html ...
- 利用bootstrap的modal组件自定义alert,confirm和modal对话框
由于浏览器提供的alert和confirm框体验不好,而且浏览器没有提供一个标准的以对话框的形式显示自定义HTML的弹框函数,所以很多项目都会自定义对话框组件.本篇文章介绍自己在项目中基于bootst ...
- 【原创】kafka producer源代码分析
Kafka 0.8.2引入了一个用Java写的producer.下一个版本还会引入一个对等的Java版本的consumer.新的API旨在取代老的使用Scala编写的客户端API,但为了兼容性 ...
- Web API 自动生成帮助文档并使用Web API Test Client 测试
之前在项目中有用到webapi对外提供接口,发现在项目中有根据webapi的方法和注释自动生成帮助文档,还可以测试webapi方法,功能很是强大,现拿出来与大家分享一下. 先看一下生成的webapi文 ...
- Emit学习(1) - HelloWorld
之前看过Dapper(使用到了Emit), CYQ.Data(另一种思路,没有使用Emit)类的框架之后, 也想自己做一个小框架玩一下, 不过此时能力太过欠缺, 做不了Cyq.Data或者PDF.Ne ...
- C#基础整理参数
基本概念 把数据传入方法中,可以使方法有多个返回值. 参数的传递 值参数,通过将实参的值复制到形参的方式传递数据.值参数的实参可以是变量或者是表达式