运算符和被运算的对象(操作符)构成表达式,表达式能产生一个具体的值。
JavaScript的运算符包括:算术运算符、赋值运算符、字符串运算符、比较运算符、逻辑运算符、类型运算符、按位运算符。
一、算术运算符
算术运算符用于对数字执行算术运算。
算术运算符的优先级和传统的数学一样。
二、赋值运算符
赋值运算符为JavaScript变量赋值。
三、字符串运算符
“+”、"+="可以用来添加(连接)字符串。
var txt1 = "John"; var txt2 = "Doe"; var txt3 = txt1 + " " + txt2;
var txt1 = "What a very "; txt1 += "nice day";
添加两个数字将返回总和,但添加数字和字符串将返回一个字符串。
var x = 5 + 5; var y = "5" + 5; var z = "Hello" + 5;
四、比较运算符
在逻辑语句中使用比较运算符来确定变量或值之间的相等或差异。得到的都是逻辑值。
比较两个不同类型的数据可能会产生意外的结果。
当数字和字符串比较时,JavaScript会隐式的把字符串先转换成数字再进行比较。
空字符串转换成0,非数字字符串会转换成NaN,并且总是false。
2 > "3" => false 2 > "" => true 2 > "a" => false
当两个字符串进行比较的时候,按照字符顺序判断,比较各字符的ASCII大小。
"2" > "12" => true "a" < "c" => true
a-z 97-122
A-Z 65-90
0-9 45-57
//将字母转成ASCII码 var str = "A"; str.charCodeAt(); // 65 var str1 = 'a'; str1.charCodeAt(); // 97 //将ASCII码转成数字 var num = 97; String.fromCharCode(num); // 'a' var num1 = 100; String.fromCharCode(num1); // 'd'
为了确保正确的结果,应在比较之前将变量转换为正确的类型。
age = Number(age); if (isNaN(age)) { voteable = "输入的不是一个数字"; } else { voteable = (age < 18) ? "Too young" : "Old enough"; }
五、逻辑运算符
逻辑运算符用于确定变量或值之间的逻辑。一般由能得到逻辑值的比较运算符构成表达式。
六、类型运算符
typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof NaN // Returns "number" typeof false // Returns "boolean" typeof [1,2,3,4] // Returns "object" typeof {name:'John', age:34} // Returns "object" typeof new Date() // Returns "object" typeof function () {} // Returns "function" typeof myCar // Returns "undefined" typeof null // Returns "object"
typeof能够返回的数据类型有:number/string/boolean/undefined/function/object。
在JavaScript中,有五种数据类型可以包含值:
string
number
boolean
object
function
有两种数据类型不包含值:
null
undefined
其中,object对象包含6种对象:
Object
Date
Array
String
Number
Boolean
但是,typeof不能返回Date、Array这种object类型。
因为就需要instanceof,instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。
语法:object instanceof constructor
需要特别注意的是:instanceof 检测的是原型。
object:要检测的对象。
constructor:某个构造函数。
instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上。
a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假
var a=new Array(); console.log(a instanceof Array); // true,同时 console.log(a instanceof Object) //也会返回 true;这是因为 Array 是 object 的子类。 function test(){}; var a=new test(); console.log(a instanceof test) 会返回true var a=3; console.log(a instanceof Number) //false var a=new Number(3); console.log(a instanceof Number) // true
javascript中判断数据类型的四种方法及typeof、instanceof、constructor、toString
发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。