Javascript 中 == 和 === 操作符详细解析

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-27 10:45:22.0
== 和 === 他们俩到底有什么样的却别,其实在之前还是 == 接触的比较多.包括在使用其他编程语言. === 似乎是在Javascript独有的.那我们来看看他们到底有什么不同.简单来说, == 不会检查类型, === 会检测比较的两方是否类型相同. 因此, == 比较也是可以的. 但是在JS引擎下它们将转换为相同的类型进行比较.=== 比较类型和值.因此,加入两边类型不同,答案永远是false. 例如比较两个字符串,他们必须是同一字符的集合.另外的原始(number,boolean)必须分配同样的值.强制规则: 在JS引擎下隐式类型转换使用 == 作比较.强制类型转换使用下面的规则:a)

null 和 undefined之间有什么区别?

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-26 14:13:29.0
之前我们写过一篇文章(Javascript中null值,特别注意的两点),这里我们来详细的对比null和undefined的区别.JavaScript 中有两个可以设置没有任何值的方式, null 和 undefined.我们来详细的分析他们俩.undefinedundefined 意思是, 变量的值没有定义. JavaScript 有一个全局变量 undefined 其值是 "undefined" 且typeof undefined 同样也是 "undefined". 记住, undefined 不是常量,也不是关键字. undefined 是一个类型

20种 前端开发者文档,指南,工具 (1)

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-25 11:13:28.0
1. DevTools Challenger http://devtoolschallenger.com/在火狐开发者版本中使用该工具中的动画面板,非常好用.2. The HTML & CSS Workmanship Manual http://workmanship.io/一个很好的HTML&CSS编写代码建议.3. ECMAScript 6 Cheatsheet  http://help.wtf/es6这是另外一个ES6的参考资源. ES6是一个很大的进步,这个参考资料给出了,ES标准版的新版本.4. React Cheat Sheet  http://

Javascript中,对象题目的一个坑

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-21 13:42:22.0
这一篇的例子,主要是来引起对Javascript对象的理解,及注意的.其实是一种面试时的一个坑.实际项目中,也是很少用得到.但是为了提高警惕性,我们来看这个例子:代码名称var first = {}; var second = {k:"second"}; var third = {k:"third"}; first[second] = 100; first[third] = 200; console.log(firs

Javascript变量同时声明时,需要注意的问题(面试常出题).

吴统威 on 编程语言 HTML/CSS/JAVASCRIPT | 2015-12-20 11:41:34.0
在javascript实际项目中,我们很可能会在变量声明上犯错误,而且自己可能还不知道,自己犯了错误.这是一个很危险的问题.当然这也是面试工作时,主考官常出的试题.在javascript中最简单的变量声明方式就是Javascript var a = 20;这个没有任何问题的.我们再来看下面的声明.Javascript var a = 10 ,b = 10 ,c = 10;  console.log(a,b,c) // 10,

Javascript中null值,特别注意的两点

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-19 15:05:43.0
null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化.我们看下面的一个例子Javascriptvar obj = null; console.log(typeof obj === "object", 0, 0); // true我们通过对null的命名描述来理解,null是被期望在一个对象上,可能在javascript的规范中设这么设定的.所以返回一个t

setTimeout使用闭包功能,实现定时打印数值

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-18 12:32:06.0
我们这次使用setTimeout来实现一个按照时间定时,依次打印数值的例子.其实在早期的时候,也是我经常犯的一个错误,或者实现这种能力,似乎js比较牵强,其实是我的错,哈哈!没能理解JS强大之处.我们直接进入主题吧!注意,如果用setInterval来实现的话,那肯定很简单,这次我们是使用setTimeout.我们先从最简单思考入手.那就会写出下面的代码.for(var i = 0; i < 5; i++){setTimeout(console.log(i),i*1000, 0, 0);}这段代码虽然依次打印了,每个i的值0,1,2,3,4.但是,执行的时间却没有起作用.为什么呢? 因为

Javascript中的函数(Function)与对象(Object)的关系

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-17 08:51:16.0
今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我.注意:官方定义: 在Javascript中,每一个函数实际上都是一个函数对象.我们先来看最简单的两个代码,也是最容易理解的.function fn(){}var obj = {}console.log(fn instanceof Function)//trueconsole.log(obj instanceof Object)//trueconsole.log(fn instanceof Object)//trueconsole.log(obj instanceo

代码重构,简单作用大!

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-16 13:49:08.0
代码重构过程重组现有的计算机代码,改变函数/方法而不改变其外部行为。重构改善代码的可读性,减少代码的复杂性。这些可以提高代码的可维护性和可扩展性。重构也是设计系统的一种方式,消除了前期设计的不严格性,也可以显示更多的可选性。重构通常是在小步骤中完成。每个小步骤后,可以显著改变内部代码,但系统功能将保持不变。程序员通常修正错误,重新排列方法,消除重复的方法,主要目标是变得更容易重新整理代码,把代码变得更干净。我们来看一个简单的代码:void printOwing() {printBanner(, 0, 0);//打印详细的System.out.println("name:  

Javascript的call,apply 理解为先

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-16 10:19:05.0
call 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法.注意:该函数的语法与 apply() 方法的语法几乎完全相同,唯一的区别在于,apply()方法接受的是一个参数数组,而 call()方法接受的是一系列参数列表。了解完这两个方法的概念后,我们来一步一步理解他们的应用.改变方法内this的指向我们先来看下面这个例子var name = "编程的人";var age = 1;var person = {name:"公众号:bianchengderen",age:20}function say(){console.log(