<script>
// var r = 8;
// var pi = 3.14;
// var s = pi*r*r;
// alert("圆的面积为"+s);
// var i=8,j=6;
// document.write(i+j);
// document.write("<br />")
// document.write(i-j);
// document.write("<br />")
// document.write(i*j);
// document.write("<br />");
// document.write(i/j);
// document.write("<br />");
// document.write(i%j);//取余的时候负号只在前面一个数字有用
// document.write("<br />");
// document.write(-i%j);
// document.write("<br />");
// document.write(-i%-j);
// document.write("<br />");
//加号比较特殊
// var a=12,b="33",c=12;
// document.write(a+b);//此时+是连接符,自动将a和b连接在一起成为一个新的字符串
// document.write("<br />");
// document.write("33"+"66");
// document.write("<br />");
/*js代码执行顺序从左往右执行,在我们的加号连接表达式中如果说在遇到字符串之前还有数值的话可以按照原有数值进行加法计算,
在遇到字符串之后再来进行自动转换,所以结果是数值12和12先进行加法运算然后转换成字符串"24"与"king"进行连接
*/
// document.write(a+c+"king");
//自增自减运算符 ++ --
// var num1 = 1;
// alert(num1++);//后缀形式先执行后加减1
// alert(num1);
//
// var num2 = 1;
// alert(++num2);//前缀形式先加减1再执行
// alert(num2);
// var i = 1;
// var a = i++;
// alert(a); //运算结果为1 变量i先将原值1赋给变量a之后自己再加1
//字符串型不支持自增自减
// var num1="a";
// alert(++num1);
// var num2=" ";//但是空字符串可以
// alert(++num2);
// alert(--num2);
//undefined不支持自增自减
// var num1 = undefined;
// alert(++num1);
// alert(--num1)
//数值型、布尔类型、null支持自增自减
//字符串连接符+
// var i = 1, j = 2, z = 3;
// document.write(i + j + z + "<br />");
// document.write(" " + i+ j + z);//在前面加上加上一个空格,这样数值就自动转换成了字符串,整个式子成为了字符串的的连接,没有数值的计算
// document.write("<br />");
// var a = "1", b = "2", c = "3";
// document.write(a + b + c);
// += -= *= /= %=
// var a = 1;
// var b = 2;
// alert( a+= b);//a = a + b
// alert(a);
//比较运算符== != === !==
// alert(0 == null);//false
// alert(0 != null);//ture
// alert(0 == false);//ture
// alert(0 === null);//false
// alert(0 !== null);//ture
// alert(0 === false);//false
// alert(0 !== false);//ture
//
// var a = 1 == "1";//ture
// alert(a);
// a = 1 === "1";//false
// alert(a);
// alert(NaN == NaN);//false NaN是唯一不能与自身进行比较的值
//逻辑运算符 && || !
//要求两个表达式为true,结果才为true
// alert(true && true);//true
// alert(true && false);//true
// alert(false && false);//true
// alert(true && false);//true
//// alert(true and true)//报错 js中不能使用and表示&&,不能使用or表示||,不能使用not表示!
//
// alert(true && true);
// alert(true || true);
//逻辑“!”,取反的作用
// alert(!true);
//在&&中,如果第一个表达式为false,整个结果就为false,就把第二个表达式短路了
// var i = 0, j = 1;
// if(i++ && j++ ) //步骤2
// {
// alert("yes");
// alert(i);
// }else{
// alert("no");
// alert(i);//返回结果为1,说明i在步骤2结束之后就加上了1而不是等循环结束之后再加上1
//
// }
// alert(i);
// alert(j);
/*
运算结果为yes 变量i初始值为1,进入if循环,i首先带入初始值0,0对应着布尔值false,即整个判断语句的结果也就变成false,然后i才加1,
第二个表达式j++也就被短路没有运行,接着运行else下面花括号内的执行代码
最后i和j返回的值分别是1和1。如果是++i,那整个结果为true
*/
//在||中,如果第一个表达式为true,则第二个表达式就被短路了
// var i = 1, j = 0;
// if(i++ || ++j){
// alert("yes")
// }else{
// alert("no")
// }
// alert(i);//2
// alert(j);//0
/*
变量i先带入初始值1进入判断语句,1对应的布尔值为true,即造成了第二个表达式++j短路,整个判断语句结果为true,结束判断语句,i加上1。
然后循环进入执行语句,输出yes。
最后i输出的值是2,j由于被短路,所以输出的值为初始值0
// var r = 8;
// var pi = 3.14;
// var s = pi*r*r;
// alert("圆的面积为"+s);
// var i=8,j=6;
// document.write(i+j);
// document.write("<br />")
// document.write(i-j);
// document.write("<br />")
// document.write(i*j);
// document.write("<br />");
// document.write(i/j);
// document.write("<br />");
// document.write(i%j);//取余的时候负号只在前面一个数字有用
// document.write("<br />");
// document.write(-i%j);
// document.write("<br />");
// document.write(-i%-j);
// document.write("<br />");
//加号比较特殊
// var a=12,b="33",c=12;
// document.write(a+b);//此时+是连接符,自动将a和b连接在一起成为一个新的字符串
// document.write("<br />");
// document.write("33"+"66");
// document.write("<br />");
/*js代码执行顺序从左往右执行,在我们的加号连接表达式中如果说在遇到字符串之前还有数值的话可以按照原有数值进行加法计算,
在遇到字符串之后再来进行自动转换,所以结果是数值12和12先进行加法运算然后转换成字符串"24"与"king"进行连接
*/
// document.write(a+c+"king");
//自增自减运算符 ++ --
// var num1 = 1;
// alert(num1++);//后缀形式先执行后加减1
// alert(num1);
//
// var num2 = 1;
// alert(++num2);//前缀形式先加减1再执行
// alert(num2);
// var i = 1;
// var a = i++;
// alert(a); //运算结果为1 变量i先将原值1赋给变量a之后自己再加1
//字符串型不支持自增自减
// var num1="a";
// alert(++num1);
// var num2=" ";//但是空字符串可以
// alert(++num2);
// alert(--num2);
//undefined不支持自增自减
// var num1 = undefined;
// alert(++num1);
// alert(--num1)
//数值型、布尔类型、null支持自增自减
//字符串连接符+
// var i = 1, j = 2, z = 3;
// document.write(i + j + z + "<br />");
// document.write(" " + i+ j + z);//在前面加上加上一个空格,这样数值就自动转换成了字符串,整个式子成为了字符串的的连接,没有数值的计算
// document.write("<br />");
// var a = "1", b = "2", c = "3";
// document.write(a + b + c);
// += -= *= /= %=
// var a = 1;
// var b = 2;
// alert( a+= b);//a = a + b
// alert(a);
//比较运算符== != === !==
// alert(0 == null);//false
// alert(0 != null);//ture
// alert(0 == false);//ture
// alert(0 === null);//false
// alert(0 !== null);//ture
// alert(0 === false);//false
// alert(0 !== false);//ture
//
// var a = 1 == "1";//ture
// alert(a);
// a = 1 === "1";//false
// alert(a);
// alert(NaN == NaN);//false NaN是唯一不能与自身进行比较的值
//逻辑运算符 && || !
//要求两个表达式为true,结果才为true
// alert(true && true);//true
// alert(true && false);//true
// alert(false && false);//true
// alert(true && false);//true
//// alert(true and true)//报错 js中不能使用and表示&&,不能使用or表示||,不能使用not表示!
//
// alert(true && true);
// alert(true || true);
//逻辑“!”,取反的作用
// alert(!true);
//在&&中,如果第一个表达式为false,整个结果就为false,就把第二个表达式短路了
// var i = 0, j = 1;
// if(i++ && j++ ) //步骤2
// {
// alert("yes");
// alert(i);
// }else{
// alert("no");
// alert(i);//返回结果为1,说明i在步骤2结束之后就加上了1而不是等循环结束之后再加上1
//
// }
// alert(i);
// alert(j);
/*
运算结果为yes 变量i初始值为1,进入if循环,i首先带入初始值0,0对应着布尔值false,即整个判断语句的结果也就变成false,然后i才加1,
第二个表达式j++也就被短路没有运行,接着运行else下面花括号内的执行代码
最后i和j返回的值分别是1和1。如果是++i,那整个结果为true
*/
//在||中,如果第一个表达式为true,则第二个表达式就被短路了
// var i = 1, j = 0;
// if(i++ || ++j){
// alert("yes")
// }else{
// alert("no")
// }
// alert(i);//2
// alert(j);//0
/*
变量i先带入初始值1进入判断语句,1对应的布尔值为true,即造成了第二个表达式++j短路,整个判断语句结果为true,结束判断语句,i加上1。
然后循环进入执行语句,输出yes。
最后i输出的值是2,j由于被短路,所以输出的值为初始值0
*/
</script>