JavaScript运算符
一、运算符和操作数的组合就称为表达式。 二、javascript运算符 (一) 算术运算符 + - * / % var++ ++var var-- --var A. + (1) 用于数值的运算 (2) 用于字符串的连接 *************************** 任何的数据类型和字符串相加都是等于相加以后的字符串 ************************* B. % (1)用于取一段范围的值 (2) 一般不用于小数,因为结果不确定。 C. var++ ++var ++在前面,他比较自私,会自己先加,然后再赋值。 ++在后面,他比较无私,先赋值,然后自己再加。 (二) 关系运算符(比较运算符) < > <= >= == === != !== (1)他运算的结果都是布尔值 (2)都是字符串的时候,他会先转换成ASCII码然后进行比较他们的第一个字母。 (3)都是数值的时候,他会正常比较 (4)当一个字符串,另一个是数值的时候,把字符串尝试转换成数值类型,然后进行比较, 如果不能转换成数值类型,则会返回NaN,然后返回假 (5) undefined null (6)如果两个都是数值型字符串,那么他们也是只比较第一个 (7)如果一个数值和布尔值进行比较,会把布尔值转换为数值再进行比较,true为1,false为0 A. == 只比较值是否相等 (1) 比较字符串的时候是比较他们的ASCII码是否相等 (2) 比较两个数值的时候是比较他们的数值是否相等 (3) 比较函数的时候,判断他们的位置是否相等。 B. === 不但比较值是否相等,还比较类型是否相等。 (三) 赋值运算符 = += -= *= /= %= A. += var a=1; a+=3; a=a+3 (1) 用于数值的相加再赋值 (2) 用于字符串的连接再赋值 *************************** 任何的数据类型和字符串相加都是等于相加以后的字符串 ************************* (四) 逻辑运算符(布尔运算符) 与 and && 或 or || 非not ! A. && if(a && b){ alert("两个都是真的"); }else{ alert("至少有一个是假的") } 运算符两边只要有一个是假,那么他的运算结果就是假,只有两个都为真的时候,运算结果 才是真的。 B.|| if(a || b){ alert("至少有一个是真的"); }else{ alert("两个都是假的") } 运算符两边只要有一个是真的那么他就是真的,只有当两个都是假的时候,他才是假的。 C.not ! 取反,假的变成真的,真的变成假的。 (1)逻辑运算符可以对任何类型的数据进行运算但是在运算的时候,可以转换为对应的布尔值 Undefined false Null false Boolean 就是本身的值 Number 除了0以外都是真的 String 除了空字符串意外都是真的 对象 真的 (2)类变量进行赋值 var a= b && c 如果一个运算数是对象,另一个是 Boolean 值,返回该对象。 如果两个运算数都是对象,返回第二个对象。 如果某个运算数是 null,返回 null。 如果某个运算数是 NaN,返回 NaN。 如果某个运算数是 undefined,发生错误。 var a=b ||c 如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。 如果两个运算数都是对象,返回第一个对象。 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。 如果某个运算数是 undefined,发生错误。 (五) 一元运算符 typeof + - delete new ++ -- A. + 正号、正数 B.delete 删除对象的方法或是属性 C.new 用来创建一个对象 (六) 特殊的运算符 , () = ? : A. , 用来一次声明多个变量 B.() (1) 运算的时候有优先级的作用 a*(b-c) (2) 运行一段函数 C.根据表达式的计算结果有条件的为变量赋值 格式: var 变量= Boolean expression?真值:假值(七) 位运算符
JavaScript数据类型转换
javascript数据类型强制转换
一、转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身。将无意义的后导0去掉。 C.如果Null转换为0 D.如果是undefined 转换为NaN not a number E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象的 toString() F.如果是字符串 1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0) 2.如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0) 3.如果是空字符串,则转换为0 4.如果是其他的值,返回NaN parseInt(参数1,参数2) 将字符串转换为整数 A.如果一个字符串只包含数字,则以10进制的方式转换为整型。 B.他会自动忽略字符串前面的空格,知道找到第一个非空的数值字符串,直到解析到第一个 非数值的字符串结束。 C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN D.参数1 八进制 十进制 十六进制 0后面的数字不能超过7位 0x 0-9 a-f 参数2,控制解析模式 parseFloat() 将字符串转换为浮点数 A.字符串当中的.只有第一个有效,其他的都是无效的。 B.如果字符串是一个有效的整数,他返回的是整数,不会返回浮点数。 二、转换为字符串类型 1. String(参数) 可以将任何的类型转换为字符串 null和undefined: 也都会转换为字符串,分别是 null和undefined 布尔类型:会返回true 和false 数值类型:本身的字符串 2.toString() 调用的格式 对象.toString() 作用是将对象以字符串的方式来表示 array.toString() 由,分割的字符串 Boolean.toString() 两个值 true false String.toString() 返回本身 Number.toString(参数) 返回本身的字符串形式 控制输出模式 注意:null和undefined没有toString()方法 三、转换为布尔类型 Boolean() 可以将任何类型的值转换为布尔值 转换为假: ""、 0、 NaN 、undefined、 false 其他的全部都转换为真。javascript数据类型隐式转换
一、函数类 isNaN() 该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true; alert() 输出的内容隐式的转换为字符串 二、运算符类 1.算数运算符 - * / % 如果操作数不是数值,将会隐式的调用Number()函数,按照这个函数的转换规则进行转换, 如果转换不成功,整个表达式返回NaN + 如果操作数都是数值,然后进行相加 任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。 如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。 2.关系运算符 关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换 (1)他运算的结果都是布尔值 (2)都是字符串的时候,他会先隐式转换成ASCII码然后进行比较他们的第一个字母。 (3)都是数值的时候,他会正常比较 (4)当一个字符串,另一个是数值的时候,把字符串尝试转换成Number()数值类型,然后进行 比较,如果不能转换成数值类型,则会返回NaN,然后返回假 (5) undefined == null (6)如果两个都是数值型字符串,那么他们隐式转换成ASCII码,也是只比较第一个 (7)如果一个数值和布尔值进行比较,会把布尔值隐式转换为数值再进行比较,true为1, false为 0 3.等性运算符 == != 会对操作数隐式的转换后再比较值 (1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。 (2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转换, 如果转换不成功,则返回false; (3) undefined == null (a) 比较字符串的时候是比较他们的ASCII码是否相等 (b) 比较两个数值的时候是比较他们的数值是否相等 (c) 比较函数的时候,判断他们的位置是否相等。 4.逻辑运算符 A. 放在表达式里面用于判断。 B. 给变量赋值 var a= b && c 如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。 如果两个运算数都是对象,返回第二个对象。 如果某个运算数是 null,返回 null。 如果某个运算数是 NaN,返回 NaN。 如果某个运算数是 undefined,发生错误。 var a=b ||c 如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为 false,则返回该对象。 如果两个运算数都是对象,返回第一个对象。 如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。 如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。 如果某个运算数是 undefined,发生错误。 三、语句类 if(表达式){ }else{ } 格式: var 变量= Boolean expression?真值:假值 while(){ } if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换 为相应的布尔 值