javascript基础(3)-javascript基本语法(二)

运算符运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果。

1. 算数运算符

当对非Number类型的值进行运算时,会将这些值转换为Number然后在运算,任何值和NaN做运算都得NaN。

+ - * / %

注意+: 如果对两个字符串进行加法运算,则会做拼串,会将两个字符串拼接为一个字符串,并返回任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。

            result = 1 + 2 + "3"; //33
			
			result = "1" + 2 + 3; //123
			
			result = 100 - 5;
			
			result = 100 - true; //99 
			
			result = 100 - "1"; //99
			
			result = 2 * 2;
			
			result11 = 2 * "8";//16
			
			result11 = 2 * undefined; // NaN

2. 一元运算符

对于非Number类型的值, 它会将先转换为Number,然后在运算, 可以对一个其他的数据类型使用+,来将其转换为number,它的原理和Number()函数一样

3. 自增和自减少

  和其他语言一致。

4.逻辑运算符

JS中为我们提供了三种逻辑运算符 ! & | ,和其他语言类似,采用!类似强制类型转换。

5.赋值运算符

  • = 可以将符号右侧的值赋值给符号左侧的变量。
  • a += 5 等价于 a = a + 5
  • 其他类似。

6.关系运算符

通过关系运算符可以比较两个值之间的大小关系, 如果关系成立它会返回true,如果关系不成立则返回false。和其他语言类似。注意:

            //比较两个字符串时,比较的是字符串的字符编码
			//console.log("a" < "b");//true
			//比较字符编码时是一位一位进行比较
			//如果两位一样,则比较下一位,所以借用它来对英文进行排序
			//console.log("abc" < "bcd");//true
			//比较中文时没有意义
			//console.log("戒" > "我"); //true
			
			//如果比较的两个字符串型的数字,可能会得到不可预期的结果
			//注意:在比较两个字符串型的数字时,一定一定一定要转型
			console.log("11123123123123123123" < +"5"); //true

7.编码
 

注意unicode怎么使用, 字符串中使用和网页中使用方式。

	        /*
			 * 在字符串中使用转义字符输入Unicode编码
			 * 	\u四位编码
			 */
			console.log("\u2620");
		<!--在网页中使用Unicode编码
			&#编码; 这里的编码需要的是10进制
		-->
		<h1 style="font-size: 200px;">&#9760;</h1>
		<h1 style="font-size: 200px;">&#9856;</h1>

8.相等运算符

相等运算:符用来比较两个值是否相等,如果相等会返回true,否则返回false。

当使用==来比较两个值时,如果值的类型不同,  则会自动进行类型转换,将其转换为相同的类型

然后再比较。注意特殊情况:NaN不和任何值相等,包括他本身,可以通过isNaN()来判断是否是NaN.

不相等: 使用!=,也会自动类型转换。

全等:用来判断两个值是否全等,它和相等类似,不同的是它不会做自动的类型转换如果两个值的类型不同,直接返回false.

不全等:  !==  ,用来判断两个值是否不全等,和不等类似,不同的是它不会做自动的类型转换如果两个值的类型不同,直接返回true.

9.条件运算符

条件运算符也叫三元运算符.和其他语言一致。

条件表达式?语句1:语句2;

10.运算符优先级

			/*
			 * , 运算符
			 * 	使用,可以分割多个语句,一般可以在声明多个变量时使用,
			 */
			//使用,运算符同时声明多个变量
			//var a , b , c;
			
			//可以同时声明多个变量并赋值
			//var a=1 , b=2 , c=3;
			alert(b);

就和数学中一样,在JS中运算符也有优先级,比如:先乘除 后加减, 在JS中有一个运算符优先级的表,  在表中越靠上优先级越高,优先级越高越优先计算,如果优先级一样,则从左往右计算。但是这个表我们并不需要记忆,如果遇到优先级不清楚,可以使用()来改变优先级。

			var result = 1 || 2 && 3;
			
			console.log("result = "+result);	// 1

11.代码块

我们的程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的,  在JS中可以使用{}来为语句进行分组,  同一个{}中的语句我们称为是一组语句, 它们要么都执行,要么都不执行, 一个{}中的语句我们也称为叫一个代码块,在代码块的后边就不用再编写;JS中的代码块,只具有分组的的作用,没有其他的用途 , 代码块内容的内容,在外部是完全可见的。

12. 流程控制语句(注意问题的拆解,再扩展思路)

语句的分类:

  • 条件判断语句

    使用条件判断语句可以在执行某个语句之前进行判断。
    if
    if else if
  • 条件分支语句


    如果分支比较多,建议使用switch和其他语言类似。
  • 			 * 	语法:
    			 * 		switch(条件表达式){
    			 * 			case 表达式:
    			 * 				语句...
    			 * 				break;
    			 *  		case 表达式:
    			 * 				语句...
    			 * 				break;
    			 * 			default:
    			 * 				语句...
    			 * 				break;
    			 * 		}
  • 循环语句
    通过循环语句可以反复的执行一段代码多次
  • while循环

  • do...while循环

  • for
     

    			 * 	- 执行流程:
    			 * 		do...while语句在执行时,会先执行循环体,
    			 * 			循环体执行完毕以后,在对while后的条件表达式进行判断,
    			 * 			如果结果为true,则继续执行循环体,执行完毕继续判断以此类推
    			 * 			如果结果为false,则终止循环
    			 * 
    			 * 		实际上这两个语句功能类似,不同的是while是先判断后执行,
    			 * 			而do...while会先执行后判断,
    			 * 		do...while可以保证循环体至少执行一次,
    			 * 			而while不能
    			 * for语句,也是一个循环语句,也称为for循环
    			 * 	在for循环中,为我们提供了专门的位置用来放三个表达式:
    			 * 		1.初始化表达式
    			 * 		2.条件表达式
    			 * 		3.更新表达式

    break和continue
     

    break关键字可以用来退出switch或循环语句,不能在if语句中使用break和continue, break关键字,会立即终止离他最近的那个循环语句.
    另外, 可以为循环语句创建一个label,来标识当前的循环。label:循环语句。
    使用break语句时,可以在break后跟着一个label,这样break将会结束指定的循环,而不是最近的。
     

                outer:
    			for(var i=0 ; i<5 ; i++){
    				console.log("@外层循环"+i)
    				for(var j=0 ; j<5; j++){
    					break outer;
    					console.log("内层循环:"+j);
    				}
    			}

    continue关键字可以用来跳过当次循环,同样continue也是默认只会对离他最近的循环循环起作用.

    程序优化:

    调整逻辑或算法提升性能。
          

  • 
    
                //console.time("计时器的名字")可以用来开启一个计时器
    
                //终止计时器
    
                //console.timeEnd()用来停止一个计时器,需要一个计时器的名字作为参数
    
                console.timeEnd("test");
    
    
    
                //它需要一个字符串作为参数,这个字符串将会作为计时器的标识

11-05 168
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值