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。

时间: 2024-11-05 12:27:19

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

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

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

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

1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"likeZqz()".有些些函数是用作内部用的或者为私有函数通常以一条下划线为前缀,就像"_zqzName()". 2.以表达式方式定义的函数 如: var zqz=function (){ return "zhaoqize"; } 在使用的时候必须把它赋值给一个变

JavaScript权威指南(第6版)学习笔记三

第六章对象 对象可以看成其属性的无序集合,每个属性都是一个名/值对.JavaScript对象是动态的,可以新增也可以删除属性,可以通过引用而非值来操作对象.如果变量x是指向一个对象的引用,那么执行代码var y=x;变量y也会指向同一个对象的引用,而非这个对象的副本,所以通过变量y修改这个对象也会对x产生影响. 对象最常见的用法是创建(create).设置(set).查找(query).删除(delete).检测(test)和枚举(enumerate)它的属性. 属性包括名字和值.属性名可以是包

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

1.delete是一元操作符,用来删除对象属性或者元素. var a={ x:1, y:2 } delete a.x; //删除x属性 “x”in a //false:a对象中已经不存在x属性 alert(a.x) //undefined;这里还是存在“东西”的 就如: var b=[1,2,3]; delete b[0]; b.length //3:还是3,虽然上面已经删除了b[0] 2.void运算符 void忽略操作的值,因此在操作数具有辅助作用的时候使用void来让程序更具语义 例子:

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

1.with语句 语法: width(object){ statement } with语句可用于临时扩展作用域链.作用域链可以按序检索的对象列表,通过它可以进行变量名解析. with将object添加到作用域链的头部,然后执行内部statement,最后把作用域链回复到原始状态. 但是:with语句要尽量避免使用.有with代码的语句难以优化,且运行的更慢. 在对象嵌套跟多层次的时候通常会使用with来优化. 如: document.forms[0].address.value //-> wi

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

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

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

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

JavaScript权威设计--JavaScript数组(简要学习笔记九)

1.数组的创建 如: var a=[1.1,null,"a"]; var b=[1, ,3]; //中间的那个元素是undefined var c=[ , , ] 这里c.length你是不是以为是3? 哈哈,长度应该是2.因为数组直接量的语法允许有可选的结尾逗号. 2.数组索引的其他种类 a[-1.23]=true    //创建一个名为-1.23的属性 a["1000"]=0    //如果是字符串,它就转换为数组的索引 a[1.000]    //和a[1]相

JavaScript权威设计--JavaScript词法结构(简要学习笔记二)

1.字符集 JavaScript是用Unicode字符集编写的 2.区分大小写 html不区分大小写,xhtml区分大小写 如:html中onclick可以写成Onclick 但是js中必须写成onclick 3.直接量 直接量:就是程序中直接使用的数据 如:12 1.2 “hello world” 4.注释 //单行注释 /*..........*/一段注释