【学习笔记】JavaScript——变量、运算符与表达式、语句

本文深入解析JavaScript变量的命名规则、类型、生存期以及常量、保留字的概念。同时详细介绍了JavaScript运算符的种类、用途及使用方法,包括算术运算、赋值运算、比较运算、逻辑运算等,为开发者提供全面的JavaScript基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js变量:

js的变量很有意思,大家都知道变量是存储信息的容器。在js中,变量用于保存数值或者表达式。

在js 中创建变量经常被称为“声明”变量。js比较特殊的是,你对它未声明的变量进行赋值,那么它会自动声明。如:

x=5;

carname="Volvo"; //在为变量赋文本值时,需要为该值加引号

等价于:

var x=5;

var carname="Volvo";

注:var可以对任何类型对象进行声明。

变量、常量、保留字

变量Variable:一种特殊的标识符(identifier)。存储信息(值或表达式)的容器。

       【与常量Constant相比,变量存储的数据,可根据程序需要而改变;JS中的变量为notype,及弱类型】

       1)命名规则:由Unicode字符串和数字组成。首字符为:字母、下划线、美元符号$。其后的还可用数字。

       2)变量生存期(有效范围):全局(global)变量、本地(local)变量。【变量没有语句块限制】

              前者用于整个文档中JS代码运行结束止。后者用于函数及其嵌套的子函数中、但不能用于父级或其他函数。

常量Constant:不变的值。【IE不支持const】

       1) const  constantName  =  value1;

              常量名首字符为字母或下划线,其后可有数字。 value1为直接量或表达式。

       2)1个const关键字可定义1个或多个常量。

       3)内置常量:JS中Infinity表无穷大的数值,-indinity表无穷小。NaN表非数值。

保留字:JS中有特殊含义的标识符。不能用于变量命名。

       保留字大多数为关键字Keywords,还有一些为扩展准备而不建议使用的特性关键字(Future Keywords)

 

 

运算符与表达式

运算符Operator:操作变量或值。6-40种

       9个算术Arithmetic: + - * / 模% 递增++ 递减-- 正号+ 取反-

              【addition/subtraction/multiplication/division/modulus/increment/decrement/?/decrement

       1个字符串String:+

       3个逻辑Logical:逻辑与Logical AND && 逻辑或Logical OR || 逻辑非Logical NOT!

       8个比较Comparison:>   <    >=   <=   ==   !=   等同===   不等同!== 【比较运算符在两操作数间比较,返回布尔值

              【greater than/less than/g t or q/l t or q/equal/not equal/strict equal/strict not equal

              【==比较时会隐式转换,===比较时不允许转换。

       7个逐位Bitwise:逐位与&   逐位或|   逐位非~   逐位异或Bitwise XOR^ 【2值相同返0,否则1

                                   Left Shift左移<<   带符号右移>>   0补足右移>>>  

              【逐位运算符 将各进制的操作数转换为32位的二进制数,并逐位/按位进行操作后返回十进制数。

              【逐位运算符又分为:逐位逻辑运算符、逐位位移运算符。

       12个赋值Assignment:①普通:= ②带操作:+=   -=   *=    /=    %=    &=    ^=    |=    <<=    >>=   >>>=

 

特殊运算符:12种

       条件conditional:    boolCondition?value1:value2   (JS中唯一的三元运算符)

       逗号comma:(,)JS最简单的运算符,用于分割2个操作数。

       delete:删除成功返回true,否则false。

              【删除变量:不能删除变量中var定义的变量。删除未定义变量返true。删除后不能访问。

              【删除对象:不能删除对象中var定义的对象。删除未定义对象返true。删除后不能访问。

              【删除对象属性:删除不存在属性返true。返问已删除/不存在对象属性返undefined。

              【删除数组元素:不管是否var定义都能删除。删后数组长度不变。删后元素仍能访问,值为undefined

       in:判断某属性/元素是否属于某对象/数组。 propNameOrNumber  in  objectName

              【propNameOrNumber为属性名时,是字符串或能转为字符串的类型。

              【propNameOrNumber为数组的下标时,是数字型或能转为数字型的类型。

       instanceof:判断对象是否为某对象类型。  objectName  instanceof  objecrType

              【objectName为对象名。objectType为对象类型,如Date/Arrayr等。Object是所有对象的类型。

       new:一元。创建自定义/内置对象。如Array、Boolean、Function、Image、Option、RegExp等。

                     objectName = new objectType(param1  [,param2]  ….  [paramN] )

       this:可在一个方法中调用当前对象。this  propertyName

       typeof:一元。返回字符串 表示操作数类型。typeof operand、typeof (literal)  

              【对直接量:返回结果类似变量。

                            typeof([1,2,3])                                          返object

                            typeof({height:10,width:20})            返object

                            typeof(function(a) {return -a})        返function

              【对关键字:null返object。undefined返undefined。

              【对对象属性:返回结果,与属性值相关。typeof( location.host )返string。typeof( Math.PI )返nunber

※ 操作数为JS 核心对象(Array/Boolean/Date/Error/Function/Number/String/Object等),返回function

※ 操作数为BOM中的对象/方法(window/navigator/frames/location/history/document/screen),返回object

       void:一元。计算某表达式/执行某方法等,不会有返回值。常用于a链接,打开新窗口而原窗口不变。

       数组元素存取[ ]:二元。可读写数组元素值。get = array[ number ]     array[ number ] = set

                                          对象可看成一个数组:get = object[ propretyName ]  object[ propretyName ]=set

       函数调用( ):操作数有传递参数决定。用于调用函数/对象方法。

       对象存取 .:二元。可读写对象属性。get = objecct . proprety;   object . proprety = set;

操作数Operant:运算符处理的数据。

       由操作数个数,运算符分一元Unary、二元Binary和三元Ternary。【在JS中只有条件运算符是三元运算符】

 

表达式Expression:可为直接量、变量、常量、也可以是(运算符、操作符和标点符号)组成的语句。

       【直接量:值(如:1233、“abc”、true、[1,2,5]、{width:100,height:200} ….)】最后1个为对象直接量

 

 

语句

5类:选择语句、循环语句、跳转语句、异常处理语句、其他语句。

语句块:JS中的作用域是整个函数中,与大括号包围的语句块无关。

选择语句:2种:   if  、 switch

       if语句、if…else语句、if…else if语句。可嵌套。

       switch语句:在执行多个分支中,优于if语句(if每个分支需检测一次变量值)。

              ※ switch语句中的case语句,需要一个终止(否则继续执行后面的case语句),如break。

循环语句:for  、 while  、 do…while  【JS中的循环语句不提供执行分支,而是反复执行

       逗号运算符与for语句结合:for(var x=0,y=3;x<y;x+=2,++y)

对象操作语句: for…in 、for each in

for…in:遍历数组元素对象属性。for( 变量 in 数组/对象 ) { … }

       (while和for…in的变量 在循环语句外 声明)通过将所有 元素/属性 反复赋值给 变量。

       注意:遍历时,若对象存在方法,此语句会将方法赋值给变量。

         对象的大多数未定义的内置属性及覆盖内置属性的方法,将不被遍历。如String的length属性和replace()方法

         再循环体中删除的属性,将不被遍历。

 with语句:用于简化引用代码。

 

跳转语句:label语句、break语句、continue语句。

       跳转语句必须放在循环体中。故lable语句需放在循环语句之前才有作用。

       label语句语法:lableName:

       break语句语法:break;或break lable;不能跳转到其他循环语句前的lable中。

       continue语句:只能跳出当前循环

 

异常处理语句:throw语句(抛出)、try…catch语句(捕获)、finally语句。

       几个概念:异常exception:表出错的信息。抛出throw:表异常状况的信息。捕捉catch:处理抛出的异常。

       异常类型:


JavaScript 变量名称的规则:

1、变量对大小写敏感(y 和 Y 是两个不同的变量)

2、变量必须以字母或下划线开始

注释:由于 JavaScript 对大小写敏感,变量名也对大小写敏感。



还有点意思的是,对js变量重新声明,它的值不会变,如:

x=5;

var x;

x的值还是5,但是在其他语言的编译器中重新声明可能就报错了。。。当然,如果你重新声明顺带赋值那肯定会变,如:


x=5;

var x=6;那x值就变成6了。



js运算符:

因为js有自动声明的功能,所以它可以随便做加减乘除的运算。


给定 y=5,下面的表格解释了这些算术运算符:

运算符描述例子结果

+ x=y+2 x=7
- x=y-2 x=3
* x=y*2 x=10
/ x=y/2 x=2.5
% 求余数 (保留整数) x=y%2 x=1
++ 累加 x=++y x=6
-- 递减 x=--y x=4


给定 x=10 和 y=5,下面的表格解释了赋值运算符:


运算符例子等价于结果
= x=y x=5
+= x+=y x=x+y x=15
-= x-=y x=x-y x=5
*= x*=y x=x*y x=50
/= x/=y x=x/y x=2
%= x%=y x=x%y x=0


+ 运算符用于把文本值或字符串变量加起来(连接起来)。

如需把两个或多个字符串变量连接起来,使用 + 运算符。

如果把数字与字符串相加,结果将成为字符串。



比较和逻辑运算符用于测试 true 或 false。

给定 x=5,下面的表格解释了比较运算符:


运算符描述例子
== 等于 x==8 为 false
=== 全等(值和类型) x===5 为 true;x==="5" 为 false
!= 不等于 x!=8 为 true
> 大于 x>8 为 false
< 小于 x<8 为 true
>= 大于或等于 x>=8 为 false
<= 小于或等于 x<=8 为 true




给定 x=6 以及 y=3,下表解释了逻辑运算符:

运算符描述例子
&& and (x < 10 && y > 1) 为 true
|| or (x==5 || y==5) 为 false
! not !(x==y) 为 true
js中也有条件运算符,跟java3元运算符一个样。。。。
greeting=(visitor=="PRES")?"Dear President ":"Dear ";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值