首页>前端教程>JavaScript教程

JavaScript基础3:运算符和表达式

运算符和被运算的对象(操作符)构成表达式,表达式能产生一个具体的值。

JavaScript的运算符包括:算术运算符、赋值运算符、字符串运算符、比较运算符、逻辑运算符、类型运算符、按位运算符。

一、算术运算符

算术运算符用于对数字执行算术运算。

运算符描述例子
+var x = 100 + 50;var x = a + b;var x = (100 + 50) * a;
-var x = 5;var y = 2;var z = x - y;
*var z = x * y;
**
幂(ES6新增)var x = 5;var z = x ** 2; 等价于Math.pow(x,2)
/var z = x / y;
%求余数,5%3的值为2
++累加var x = 5;x++;var z = x;
--累减var x=5;--x;var z=x;

算术运算符的优先级和传统的数学一样。

二、赋值运算符

赋值运算符为JavaScript变量赋值。

运算符例子
等价于
=x = yx = y
+=x+=yx=x+y
-=x-=yx=x-y
*=
x*=yx=x*y
**=
x**=yx=x**y  (还是ES7的预案,不稳定)
/=x/=yx=x/y
%=x%=yx=x%y

三、字符串运算符

“+”、"+="可以用来添加(连接)字符串。

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;

四、比较运算符

在逻辑语句中使用比较运算符来确定变量或值之间的相等或差异。得到的都是逻辑值。

运算符描述
例子
==判断是否相等5==5true
===值和数据类型是否相等5==="5"false
!=不相等5!=8true
!==值和类型不相等5!=="5"true
>大于5>8false
>=大于等于5>=5true
<小于5<3false
<=小于等于5<=5true
?三元运算符,它根据某些条件为变量赋值variablename = (condition) ? value1:value2 var voteable = (age < 18) ? "Too young":"Old enough";

比较两个不同类型的数据可能会产生意外的结果。

当数字和字符串比较时,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";
}

五、逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑。一般由能得到逻辑值的比较运算符构成表达式。

运算符描述例子
&&和 (and)
6<10&&5>3 => true
||或(or)6<10 || 5<3 =>true
!非(not)!5>3 => false

六、类型运算符

运算符描述例子
typeof返回数据的类型typeof(3) =>Number
instanceof
如果对象是对象类型的实例,则返回真
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

点赞


2
保存到:

相关文章

发表评论:

◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。

Top