您的位置:首页 > Web前端 > JavaScript

javascript基础(赋值运算符,关系运算符,相等运算符,三元运算符,运算符的优先级,代码块)(十)

2017-02-08 09:35 459 查看
有代码编写基础的,自学时请略过

1.赋值运算符:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
赋值运算符可以将一个值赋值给一个变量

=
- =可以将符合右侧的值,赋值给符号左侧的变量
+=
- a += x 等价于 a = a + x
-=
- a -= x 等价于 a = a - x
*=
- a *= x 等价于 a = a * x
/=
- a /= x 等价于 a = a / x
%=
- a %= x 等价于 a = a % x

* */

var a = 10;

//使a增加5
//a = a + 5;
//a += 5; // 等价于 a = a + 5;

//a *= 5; // a = a * 5;

//a /= 5; //a = a / 5;

a %= 5 ; // a = a % 5;

console.log("a = "+a);

</script>
</head>
<body>
</body>
</html>
2.关系运算符:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
关系运算符可以比较两个值之间的大小关系

> 大于号,比较符号左侧的值是否大于右侧的值
如果关系成立,则返回true,否则返回false
>= 大于等于,比较左侧的值是否大于或等于右侧的值
如果关系成立,则返回true,否则返回false
< 小于号
<= 小于等于

如果对非数值类型进行关系运算,则会将他们转换为Number然后在比较
* */

//console.log(10 > 5); //true
//console.log(4 > 5); //false
//console.log(5 > 5); //false
//console.log(5 >= 5); //true
//console.log(6 >= 5); //true

var result = 5 < 4; //false

//1 < 0
result = true < false; //false

//1 < 2
result = true < "2"; //true

result = null < 5; //true

//NaN < 5 NaN和任何值比较都是false
result = undefined < 5; //false
result = undefined > 5; //false
result = undefined >= 5; //false

result = 5 < "4"; //false

/*
* 当关系运算符的两侧都是字符串时,它不会将字符串转换为Number,
* 而是会比较字符串的Unicode编码
*
* 当字符串中含有多个字符时,会逐位进行比较
* 第一位和第一位比 第二位和第二位比 以此类推
*
* 通过这种方式,可以将文本按照字母顺序进排序,但是对于中文来说意义不大,
* 尤其在比较两个数字类型的字符串时,一定要注意,很有可能得到错误的结果
*/

result = "a" < "b"; //true

result = "bc" < "be"; //true

result = "abcdefghijk" < "b"; //true

//0035 < 0034
result = "5" < "4"; //false

result = "5" < "40"; //false

result = "中" > "国";

result = +"5" < "40"; //true

console.log("result = "+result);

</script>
</head>
<body>
</body>
</html>

3.相等运算符:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
* ==
* - 相等运算符,它可以用来判断两个值是否相等,如果相等,则返回true,否则返回false
* - 如果对两个类型不同的变量进行相等比较,会先将其转换为相同的类型,然后再比较
* (至于具体转换为什么类型,不定,但是大部分情况是转换Number)
*/

//console.log(1 == 1); //true
//console.log(1 == 2); //false

//console.log(true == 1);//true

//console.log(true == 2);//false

//console.log("1" == true); //true

//字符串和布尔值比时,都转换为Number然后在比
//console.log("2" == true); //flase

//console.log(null == 0);//false

//由于undefined衍生自null,所以这两个类型的值做相等比较时会返回true
//console.log(null == undefined);//true

//NaN不和任何值相等,包括它自己
//console.log(NaN == NaN); //false

var a = NaN;

//判断a的值是否是NaN
//console.log(a == NaN);
/*
* 在JS中为我们提供了一个isNaN()函数,
* 这个函数专门可以判断一个值是否是NaN,如果是则返回true,否则返回false
*/
//console.log(isNaN(a));

/*
* ===
* - 全等运算符,可以判断两个值是否全等,如果全等则返回true,否则返回false
* - 全等和相等的区别就是相等会做自动的类型转换,而全等不会,
* 使用全等时,如果两个值的类型不同,直接返回false
*/

//console.log(1 === "1"); //false
//console.log(true === "1"); //false
//null和undefined相等,但是不全等
//console.log(null === undefined); //false

/*
* !=
* - 不等运算符,和相等相反,如果两个值不等则返回true,否则返回false
* - 不等会对值进行自动的类型转换,如果转换后相等,它也认为相等
*
* !==
* - 不全等运算符,检查两个值是否不全等,如果成立则返回true,否则返回false
* - 不全等不会做自动的类型转换,如果两个值的类型不同,直接返回true
*/
//console.log(1 != 2);//true
//console.log(1 != 1);//false
//console.log(1 != "1");//false
console.log(1 !== "1");//true

</script>
</head>
<body>
</body>
</html>


4.三元运算符:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
三元运算符(三目运算符)
- 三元运算符需要三个操作数
-?:
-语法:
条件表达式?语句1:语句2
- 执行流程:
- 三元运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为true,则执行语句1,并将执行结果返回
如果判断结果为false,则执行语句2,并将执行结果返回
* */

//false?alert("语句1"):alert("语句2");

//创建两个变量
var a = 60;
var b = 75;
var c = 40;
//如果a的值大,则输出a大,如果b的值的,则输出b大
//alert("b大");
//alert("a大");
//a > b ? alert("a大") : alert("b大") ;

//获取a和b之中的大值
/*var max = a > b ? a : b;
max = max > c ? max : c;*/

//表达式尽量不要写的太长,不方便阅读
var max = a > b ? ( a > c ? a : c) : (b > c ? b : c) ;

console.log("max = "+max);

</script>
</head>
<body>
</body>
</html>
5.运算符的优先级:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
运算符的优先级和数学中的类似,
比如:先算乘除后算加减,也可以通过括号来改变运算的顺序
遇到优先级不清楚,可以查询优先级的表,在表中,位置越靠上,优先级越高,
优先级越高,越先运算,同一行的运算符优先级一样,优先级一样从左往右计算
但是这个优先级的表,不需要记忆,如果遇到拿不准,则使用()来改变优先级
* */

var result = ( 1 + 2 ) * 3;

/*
* 如果|| 和 &&的优先级一样,或者 ||大
* 则从左向右算,结果是 3
*
* 如果 && 的优先级高,则应该先算后边的
* 结果是:1
*/
result = 1 || (2 && 3);

console.log("result = "+result);

</script>
</head>
<body>
</body>
</html>


6.代码块:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">

/*
在JS中,我们可以使用{}来为语句进行分组
可以将同一组的语句放到一对{}中
一个大括号中的语句,我们称为是一个代码块,代码块后边不用加;

JS中的代码块仅有分组的作用没有其他的作用,代码块中的内容对于代码块外是可见的
* */

/*{
alert("hello");
console.log("你好");
document.write("哈哈哈哈哈哈");
}

{
alert("hello");
console.log("你好");
document.write("哈哈哈哈哈哈");
}*/

{

var a = 123;
}

console.log(a);

</script>
</head>
<body>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript html 标签