JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)

1.3种原始表达式

    1.直接量:    1.23    //数字直接量

                        “hello”    //字符串直接量

                        ...

    2.保留字构成的原始表达式:

        true    //返回布尔值:真

        false    //假

        null    //返回一个值:空

    3.变量:

        i    //返回变量i的值

        sum    //返回sum的值

 

2.对象初始化表达式

    

var p={
        x:2.3,
        y:-1.2
    }    //一个拥有两个属性成员的对象

 

    对象直接量也可以嵌套:

    

var rea={
        upp:{
            x:2,
            y:2
        },
        low:{
            x:4,
            y:5
        }
    }

 

3.左值

    左值是个古老的术语,它是指表达式只能出现在赋值运算符的左侧

 

4.值比较的问题

两个值在比较的时候会出现类型转换的问题。(这种转换只是针对相等运算符,也即是“==”)

在全等运算符===中不会出现任何类型转换。

转换的规则是:对象转换为原始值,然后在进行比较。对象通过toSrting()方法或valueOf()方法转换为原始值。

如:“1”==true    //结果是:true

首先布尔值true转换为数字1,然后执行比较

“1”==1

然后字符串“1”转换为数字1

1==1

因为两个数字的值相等,因此比较结果为true

 

5.in运算符

in运算符希望左侧是个字符串或者可以转换为字符串,希望右侧是个对象

例子:

   

 var point={
        x:1,
        y:2
    }
    "x" in point    //结果是true,对象point中有一个名为x的属性
  “toString”in point     //结果是true,对象继承了toString()方法

 

6.instanceof运算符

希望左侧是个对象,右侧是对象的类

例子:

    

var d=new Date();
    d instanceof Date;    //true
    d instanceof  Object    //true,所有的对象都是Object对象的实例
    d instanceof Number      //false,d不是Number对象

 

    为了计算表达式:o    instanceof    f。JavaScript首先计算f.prototype,然后在原型链中查找o,如果找到,那么o是f的一个实例,表达式返回true。如果f.prototype不在o的原型链中,那么o就不是f的实例,返回false。

转载:http://www.cnblogs.com/zqzjs/p/4799290.html

时间: 2016-05-20

JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)的相关文章

JavaScript权威设计--Window对象之Iframe(简要学习笔记十四)

1.Window对象属性的文档元素(id) 如果在HTML文档中用id属性来为元素命名,并且如果Window对象没有此名字的属性,Window对象会赋予一个属性,它的名字是id属性的值,而他们的值指向表示文档元素的HTMLElement对象. Window对象是以全局对象的形式存在于作用域链的最上层,这就意味着HTML文档中使用的id属性会成为可以被脚本访问的全局变量. 如: <button id="but"/> 就可以通过全局变量but来引用此元素.   2.多窗体窗口(

JavaScript权威设计--jQuery,Ajax.animate,SVG(简要学习笔记二十)[完结篇]

1.$和jquery在全局命名空间中定义的唯一两个变量.   2.jquery是工厂函数,不是构造函数.他返回一个新创建的对象.   3.jquery的四种调用方式:     <1>传递CSS选择器(字符串)给$()方法       <2>传递Element,Document或Window对象给$()方法       <3>传递HTML文本字符串给$()方法.     如: var img=$("<img/>", //新建一个<im

JavaScript权威设计--JavaScript函数(简要学习笔记十一)

1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScript构造函数调用的语法是允许省略实参列表和圆括号的. 如: var o=new Object(); //->等价于 var o=new Object;   第四种:使用call()与apply()间接调用(放在后面详细说明)   2.函数的实参与形参--可选形参 先看一个例子: function g

JavaScript权威设计--JavaScript脚本化文档Document与CSS(简要学习笔记十五)

1.Document与Element和TEXT是Node的子类. Document:树形的根部节点 Element:HTML元素的节点 TEXT:文本节点   >>HtmlElement与HtmlDocument a:HtmlElement对象表示HTML中的一个个元素. b:HtmlDocument对象表示 HTML 文档树的根.HTMLDocument 接口对 DOM Document 接口进行了扩展,定义 HTML 专用的属性和方法.   >>HTML的DOM对象 a:DOM

JavaScript权威设计--JavaScript变量,作用域,声明提前(简要学习笔记四)

1.宿主对象与宿主环境 宿主对象:由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象.所有的BOM和DOM都是宿主对象.   宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器等.   2.日期的转换 var now =new Date(); typeof(now+1) //string typeof(now-1) //number now==now.toString(); //true now>(now-1)

JavaScript高级程序设计(第3版)学习笔记6 初识js对象_基础知识

在房子里面可以放你想放的任意事物--如果你有足够的美学造诣,你甚至可以弄一个房中房试试--当然,为了方便管理,我们会给房子里存放的所有事物都会取上一个不重复的名字,比如医药房间里的各种药品名称.在ECMAScript中,你可以在对象中存放任意你想放的数据,同样,我们需要给存放的数据取一个名字--也就是对象的属性名,再存放各种数据.再看看ECMA-262中对象的定义:无序属性的集合,其属性可以包含简单数据类型值.对象或者函数. 进入对象,我开始有些激动了,说实话,让我想起做这系列学习笔记的最初原因

JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)

1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. 如: function my(){ } my(); //别忘记调用 这段代码定义了一个单独的全局变量:名叫"my"的函数. 我们还可以这么写,定义一个匿名函数: (function(){ //这里第一个左括号是必须的,如果不写,JavaScript解析器会将 //function解析成函

JavaScript权威设计--Window对象(简要学习笔记十三)

1.Window对象是所有客户端JavaScript特性和API的主要接入点. Window对象中的一个重要属性是document,它引用Document对象. JavaScript程序可以通过Document对象和它包含的Element对象遍历和管理文档.   2.URL中的JavaScript 在URL后面跟一个JavaScript:协议限定符.里面的代码会作为JavaScript代码进行运行,需用分号分割. 如: <a href="javascript:alert('OK!')&qu

JavaScript高级程序设计(第3版)学习笔记12 js正则表达式_基础知识

需要指出的是,这里只是总结了正则表达式的常用的且比较简单的语法,而不是全部语法,在我看来,掌握了这些常用语法,已经足够应对日常应用了.正则表达式不只是应用在ECMAScript中,在JAVA..Net.Unix等也有相应应用,这篇文章则是以ECMAScript中的正则表达式为基础总结的. 一.正则表达式基础 1.普通字符:字母.数字.下划线.汉字以及所有没有特殊意义的字符,如ABC123.在匹配时,匹配与之相同的字符. 2.特殊字符:(需要时,使用反斜杠"\"进行转义) 字符 含义 字

JavaScript高级程序设计(第3版)学习笔记9 js函数(下)_基础知识

再接着看函数--具有魔幻色彩的对象. 9.作为值的函数 在一般的编程语言中,如果要将函数作为值来使用,需要使用类似函数指针或者代理的方式来实现,但是在ECMAScript中,函数是一种对象,拥有一般对象具有的所有特征,除了函数可以有自己的属性和方法外,还可以做为一个引用类型的值去使用,实际上我们前面的例子中已经有过将函数作为一个对象属性的值,又比如函数也可以作为另一个函数的参数或者返回值,异步处理中的回调函数就是一个典型的用法. 复制代码 代码如下: var name = 'linjisong'