运算符与表达式

本文详细介绍了JavaScript中的标识符命名规则、保留字及其与属性访问的关系,以及运算符的使用,包括逻辑运算符的短路原则和自增自减运算。同时,阐述了表达式、函数声明与表达式的区别,并展示了立即执行函数表达式(IIFE)的应用。此外,还讨论了JavaScript语句的基本规则和遍历方法,如for...in和for...of。
摘要由CSDN通过智能技术生成

一、标识符与保留字

1.标识符

标识符是代码中用来标识变量、函数、或属性的字符序列

命名规则:

由字母、数字、下划线和$符号组成

不能以数字开头

大小写敏感(区分大小写)

ps:标识符不能和 JavaScript 其它关键字同名

2.保留字

在某种意思上是为将来的关键字而保留的单词。因此保留字不能被用作变量名或函数名。

3.属性命名

访问对象属性方式
        1.通过点号(.)运算符
        点号要求后面的属性名是合法的标识符,对于不合法的不可以使用
        2.通过中括号([])运算符
        中括号要求的则是一个字符串即可,不必是合法的标识符
ps:全局变量是window对象的属性;全局函数是window对象的方法

二、运算符与表达式

1.字面量(直接量)

表示自身的常量,不创建变量

2.运算符

逻辑、算数、比较、赋值。

逻辑运算符两边都是布尔类型时,&&:两侧都为真才为真,||两侧有一为真就为真

当两侧不是布尔类型时,首先将左操作数变成布尔,进行逻辑判断。

&&:左操作数为true,直接返回右操作数,左操作数为false,返回左操作数

||:左操作数为true,直接返回左操作数,左操作数为false,返回右操作数

3.短路原则的应用

a.

function area_of_circle(r,pi){
    return r*r*(pi||3.14);
}
函数定义时可以给参数指定默认值,调用时若未传参数则该参数的值取它定义时的默认值

b.

function animate(param,speed,callback){
    //do something
    callback&&callback();//callback&& typeof callback==="function" &&callback()
}

提高函数的健壮性

4.++与--

++:递增运算符为其操作数增加1,返回一个数值

 如果使用后置(postfix),即运算符位于操作数的后面(如 x++),那么将会在递增前返回数值

 如果使用前置(prefix),即运算符位于操作数的前面(如 ++x),那么将会在递增后返回数值

--:为操作数减一,其他同

5.赋值运算符

基于右值给左值赋值,赋值表达式返回的值为右操作数

ps:1.多个赋值级联时的赋值传递规律

var a=b=5;//先执行b=5,在执行a=b,因为b=5,所以a=5

var a={n:2};//a指向一个地址内存放{n:2}
var b=a;//b指向a所指向的地址
a.x=a={n:1};//根据操作运算符的性质,先在a中拓展一个x,再根据赋值级联的复制传递规律得到a.x={n:1},                        
            //又因为a改变了指向的地址,存放的数据为{n:1},但是原来b指向的不变
console.log(a.x);//undefined a已经更改了指向的地址,内部没有x
console.log(b);//{x:Object,n:2}

2.为避免=与==混淆可以反写,如:45=a;

6.表达式

表达式将产生一个值,用于需要值的地方

7.函数声明与函数表达式

function add(a,b,c){
    return a+b;
}//函数声明
var a=function(a,b){
    return a+b;
}//函数表达式

JavaScript 解析器识别函数声明的条件是以 function 关键字开始,只要在 function 关键字的前面有任何其他的元素,就会从函数声明转变为函数表达式。

8.立即执行表达式(IIFE)

写法:

(function foo(x,y){...}(2,3))//第一种
(function foo(x,y){...})(2,3)//第二种
//与运算符结合的写法
var i=function(){...}();
true&&function(){...}();
~function(arg1,arg2){...}(x.y);
!function(){...}();

a.通过对作用域的改变(限制变量声明周期),防止变量污染

三、语句

1.语句是为了完成某种任务而进行的操作,比如赋值语句

JavaScript 应用程序是由许多语法正确的语句组成的

JavaScript 语句是由 web 浏览器“执行”的“指令”

2.语句与表达式的区别

语句主要是为了进行某种操作,一般不需要返回值

表达式是为了得到返回值,一般会返回一个值

3.复合语句

JavaScript 中的多条语句联合在一起,形成一条复合语句

4.基本规则

语句以分号结束;语句块的结束不需要分号

5.遍历

for...in 常用来遍历对象 for k in obj

for...of 常用来遍历数组 for k of arr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值