JavaScript学习杂记--几个需要注意的运算符

一:==运算符

<1> "10"==10 ?

<2>true==1 ?

<3> {valueOf:function(){return "10"}}==10?

原理是这样的,如果一个对象和int/string比较的话,js内部会优先调用valueOf方法,也就是将对象数值化,其实这里好玩的地方就是我们自定义的valueOf重写了父类的valueOf方法,所以就是判断“10”==10。

如果你的类中没有定义valueOf方法的话,js内部引擎还会再去找toString()方法,如果有则执行。

“===”:这个多出来的“=”就是在“==”的基础上再判断类型是否相等?就比如:

二:&&和||运算符

bup=b && b.parentNode                 先判断b是否存在,如果b不存在,那可能b就是undefined,null,0 或者NaN,如果b存在,那么就返回b.parentNode。

ret=results||[]                               如果results有值,那么ret=results,如果results为null,undefined,NaN或者0,那么result=[]。

参考资料:http://www.cnblogs.com/huangxincheng/p/4122255.html

时间: 2024-08-11 11:43:53

JavaScript学习杂记--几个需要注意的运算符的相关文章

JavaScript学习杂记

1.运算符字符串拼接用"+"符号"||" 2.arr.length  //数组长度str.substr(2,3);  //读取字符串第几位起的几个字符,str中第三位起的三个字符arr.join(); //将数组元素以符号隔开arr.split(); //将字符串以符号分开 3.字符串对象str.indexOf();  //返回子串的位置,如果没找到则返回-1Date日期对象var date = new Date();dete.getFullYear();Math对

JavaScript学习杂记--变量

一.作用域:js到底是什么作用域,当然是函数作用域了,我们的浏览器就是一个被实例化的window对象,如果在window下定义一个name字段,那么name字段就具有window这个函数作用域,也就是在window下都是可以访问的,如果在window下定义一个function ctrip,然后里面再定义一个name,那么这个新定义的name只能在ctrip函数下通用,而老的name继续在window下通用 解析器在执行ctrip的时候,第一件事情就是寻找ctrip下的所有局部变量,然后再执行后续

JavaScript学习杂记--对象和数组

一.对象 说起对象,我们不自然就想起了面向对象中自封装的一个类,同样JS中也是遵循这个守则,在web编程中几乎天天用到的就是JSON.是的,这就是一个对象,不过这个对象下面的字段都是字符串和值类型,如下图. var delivery = { no: 1, sendtime: "2014-11-25", way: "PJS" }; 从上面可以看出delivery中只具有基本的字符串和数值类型,当然给你玩的可不仅仅就这么多,除了基本的类型,我们还可以定义一个数组类型,函

javascript学习

javascript 学习 title: Javascripttags: javascript,学习grammar_cjkRuby: true--- 定义变量 三种形式 var name; var name = "zhang san"; var name; name = "zhang san"; Javascript 的数据类型 6种数据类型 字符串单引号或双引号 var name = "zhang san"; var name = 'zhang

Javascript 学习笔记 2: 标识语句

可以在任何语句声明之前使用唯一标识(identifier)和冒号(:)用来标记该语句: identifier: statement 这样,你可以在程序的任何其他地方通过标识来使用这个语句.即使在语句内部也可以使用该语句的标识(例如:循环语句和条件语句).当在一个循环语句前添加一个标识,你可以在语句内部通过break 标识来退出当前循环,也可以通过continue标识来继续执行该语句.例如: mainloop: while(token != null) { // Code omitted... c

JavaScript学习之DIV层与图像

DIV层与图像 一.设计一个可定位的层 1.设置位置(position)和大小 (1)绝对定位(absolute):以页面边框为参照,只要设置好绝对位置,那么元素的位置会始终固定在距离边框某个位置的距离. 绝对定位有两个属性:left和top,分别是距离网页左边和网页顶部的绝对位置,可借助style属性直接设置: style="position:absolute;left:距离左边距离;top:距离顶部距离" (2)相对定位(relative):需要有一个参照元素,设置好相对位置和参照

JavaScript学习05 定时器

JavaScript学习05 定时器 定时器1 用以指定在一段特定的时间后执行某段程序. setTimeout(): 格式:[定时器对象名=] setTimeout(“<表达式>”,毫秒) 功能:执行<表达式>一次. 例子: <!DOCTYPE html> <html> <head> <title>timer1.html</title> <meta http-equiv="keywords" co

Javascript学习--------认识window窗口对象

window对象: Window 对象表示浏览器中打开的窗口. 可以通过window对象设置窗口的大小,位置等. 还可以控制是否加载网页等. window对象集合: 集合 描述 frames[] 返回窗口中所有命名的框架. 该集合是 Window 对象的数组,每个 Window 对象在窗口中含有一个框架或 <iframe>.属性 frames.length 存放数组 frames[] 中含有的元素个数.注意,frames[] 数组中引用的框架可能还包括框架,它们自己也具有 frames[] 数

Javascript学习------FileSystemObjec对象

动态创建FileSystemObject对象: var fso=new FileSystemObject("Scripting.FileSystemObject"); (接下来可以用变量fso对Drive对象.Drives集合.File对象.Files集合.Folder对象.Folders集合以及TextStream对象进行相应的操作.) FileSystemObject对象的方法 ·GetAbsolutePathName()方法:该方法根据提供的路径返回完整的路径. ·GetBase