注:有编程基础的,自学时可以略过此节
1.基本运算符:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
运算符(操作符)
- 通过运算符可以对一个或多个值进行运算,并返回结果
- 我们之前使用的typeof就是一个运算符,他可以用来检查一个变量的数据类型
- 比如:+ - * / % 都是运算符
- 算数运算符:
+
- +可以对符号两侧的值进行加法运算,并将运算结果返回
- 当对非数字(除了字符串)进行加法运算时,它会将其先转换为数字,然后再运算
- 如果对两个字符串进行相加,则会进行拼串的操作,将两个字符串拼成一个字符串
- 任何值和字符串进行加法运算时,都会先将其转换为字符串,然后在和字符串进行拼串的操作
- 我们经常通过为一个任意的值加 空串的形式来将其转换为字符串,
这种形式我们称为隐式的类型转换,原理实际上也是通过String()函数转换的,
但是这种方式更加简单。
-
*
/
%
* */
/*var a = 123;
var result = typeof a;
console.log(result);*/
var a = 10;
a = a + 5;
a = 7 + 8;
a = 10 + true; //11
a = true + false;//1
a = false + null; //0
//任何值和NaN做任何运算都是NaN
a = NaN + 10; //NaN
a = undefined + 100; //NaN
a = "hello" + "world"; //"helloworld"
a = 11 + "abc"; //"11abc"
a = true + "hello";
a = "你好" + undefined;
//console.log("a = " +a);
a = 123;
//a = String(a);
a = a + "";
a = true;
a = a+"";
/*console.log("a = "+a);
console.log(typeof a);*/
var result = 1 + "2"; //12
result = 1 + 2 + "3"; //33
result = "1" + 2 + 3; //123
result = "1" + (2 + 3); //15
//console.log("result = "+result);
/*
-
- -可以对符号两侧的值进行减法运算
*
- *可以对符号两侧的值进行乘法运算
/
- /可以对符号两侧的值进行除法运算
- 这些符号的运算规则和数学中是一摸一样的,
不同的是在对非数字类型进行运算时,会先将其转换为数字然后在运算
我们还可以通过为一个任意的数据类型 -0 *1 /1 来将其转换为Number类型
原理和Number()函数一样。
%
- % 可以对符号两侧的值进行取模(取余)运算
- 同样对非数字进行取模的运算,也会转换为数字然后在运算
* */
var b = 10 - 5;
b = 10 * 5;
b = 10 / 5;
b = 10 - true;
b = 5 / "5";
b = 5 * "abc";
//console.log("b = "+b);
var c = "123";
c = c - 0;
/*console.log("c = "+c);
console.log(typeof c);*/
var d = 10 % 5; //0
d = 9 % 5; //4
d = 8 % 5; //3
console.log("d = "+d);
</script>
</head>
<body>
</body>
</html>
2.一元运算符:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
一元运算符只需要一个操作数
一元的+
- 一元+就相当于数学运算中的 正号
- 一元+不会对一个数值产生任何变化
一元的-
- 一元-相当于数学运算中的 负号
- 负号可以对一个数值进行符号位取反
- 如果对非数值进行一元的+或-运算,它会向将其转换为number,然后在运算
我们可以利用这一特点来将任意的数据类型 转换为Number
* */
var a = -10;
//a = +a;
a = -a;
a = true;
a = -a;
//可以使用一元的+将其他数据类型转换为Number,原理和Number()函数一样
a = "123";
a = +a;
/*console.log("a = "+a);
console.log(typeof a);*/
var result = 1 + +"2" + 3;
console.log(result);
</script>
</head>
<body>
</body>
</html>
3.自增和自减:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
自增:
- 所谓的自增就是指在变量原值的基础上增加一个1
- 我们使用++来进行自增运算
- ++可以写在变量前或者变量后,我们称为前++(++a) 和 后++(a++)
无论是a++还是++a都会立即使原变量自增1,调用几次就自增几次
不同的是a++和++a的值不同。
a++的值是变量自增前的值(变量原值)
++a的值是变量自增后的值(变量新值)
* */
var a = 10;
//使a自增1
//a++;
//++a;
/*console.log("++a = " + ++a);*/
/*console.log("a++ = " + a++);*/
/*console.log("a = "+a);*/
a = 10;
//10 12 12
/*
① a++ a++ = 10 a = 11
② ++a ++a = 12 a = 12
③ 三个求和
*/
var c = a++ + ++a + a;
//console.log("c = "+c);
var b = 5;
/*
* ① b++ b=6 b++ = 5
* ② 将b++的结果赋值给b
*/
//b = 5
b = b++;
//console.log(b);
/*
* 自减
* - 自减指在原值的基础上 -1
* - 使用 -- 进行自减运算
* - --分为前--(--a) 和 后--(a--)
* - 无论是--a 还是 a-- 都会使原变量立即自减1
* - 不同的是 a-- 的值变量自减前的值(变量的原值)
* 而--a 的值是变量自减后的值(变量的新值;)
*/
var n = 5;
//n--;
//--n;
console.log(n--);//5
console.log(--n); //3
console.log("n = "+n);
</script>
</head>
<body>
</body>
</html>
练习:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var n1=10 , n2=20;
var n = n1++; //n1=11 n=10
console.log('n='+n); //10
console.log('n1='+n1); //11
n = ++n1; //n1=12 n=12
console.log('n='+n); //12
console.log('n1='+n1); //12
n = n2--; // n2=19 n=20
console.log('n='+n); //20
console.log('n2='+n2); //19
n = --n2; //n2=18 n=18
console.log('n='+n); //18
console.log('n2='+n2);//18
</script>
</head>
<body>
</body>
</html>