JavaScript语法小结一

导入js文件

在这里插入图片描述

<script…/>属性

defer:推迟脚本执行。(在HTML页面整个载入后再执行导入的 js 脚本)
async:异步执行脚本。(浏览器默认从上到下解析HTML页面元素,即先导入js文件再 解析后面的页面内容。async会使其同时执行)。

定义变量

直接赋值或用var定义都可。
在这里插入图片描述

类型转换

自动类型转换:

  • 对减号运算符,因为字符串不支持减法运算,所以系统自动将字符串转换成数值。
  • 对加号运算符,因为字符串可用加号作为连接运算符,所以系统自动将数值转换成字符串,并将两个字符串进行连接。

强制转换类型:

  • toString():将布尔值、数值等转换成字符串。
  • parselnt():将字符串、布尔值等转换成整数。
  • parseFloat():将字符串、布尔值等转换成浮点数。
变量作用域

在javascript中,只有在函数中用 var 定义的变量才是局部变量,其他都是全局变量。

变量提升

javascript的变量提升机制:在函数体中,不管在那儿定义了变量,代码被执行时总会将变量声明提升到函数顶部(只提升变量声明,不提升赋值部分)。
在这里插入图片描述
等同于
在这里插入图片描述

新增的let变量
  • let变量只在块内有效(包括循环体、函数)。
  • let定义的全局变量不会变成window对象的属性,window.name访问无效。
  • let定义的变量不会提前装载。(即不会变量提升)
const定义常量
const MAX = 120;

基本数据类型

  • 数值类型:包含整数或浮点数。(支持科学计数法,十六进制、八进制)
  • 布尔类型:只有true和false两个值。
  • 字符串类型:必须用引号括起来,单引号、双引号都行。
  • undefine类型:专门用来确定一个已经创建但是没有初值的变量。
  • null类型:用于表明某个变量的值为空。
Infinity和-Infinity,NaN

当数值变量超出了其表数范围时,会出现 Infinity(正无穷大) 和 -Infinity(负无穷大)

  • Infinity和-Infinity 进行算术运算时,结果会是NaN 。
  • Infinity和-Infinity 与其他普通数进行算术运算时,结果依然是无穷大。
  • Infinity和-Infinity 可以进行比较运算。

NaN也是一个特殊值,他表示非数。

  • 0除0,两个无穷大运算,NaN参与的运算 都得NaN 。
  • NaN不与任何数相等,包括它本身。只能用 isNaN() 函数判断变量是否为 NaN 。
undefined和null

undefined:该值用于表示没有为某个变量分配值,也用于表示对象的属性不存在。
null:用于表示变量值为空

复合类型

复合类型是由多个基本数据类型组成的数据体,JavaScript中的复合类型大致有3种:

  • Object:对象
  • Array:数组
  • Function:函数
数组

javascript 的数组有如下3个特征:

  • 同一个数组中的元素类型可以不相同。
  • 数组长度可变。
  • 访问数组时不会产生数组越界,访问并未赋值的数组元素时,其值为undefined 。
    javascript 数组作为栈使用的两个方法如下:
  • push(ele):元素入栈,返回入栈后数组的长度。
  • pop():元素出栈,返回出栈的数组元素。
    javascript 数组作为队列使用的两个方法如下:
  • unshift(ele):元素入队列,返回入队列后数组长度。
  • shift():元素出队列,返回出队列的数组元素。

运算符

  • 赋值运算符:=
  • 算术运算符:+,-,*,/
  • 位运算符:& 按位与,| 按位或,~ 按位非
  • 加强的赋值运算符:赋值运算符可与算术运算符、位运算符等结合,成为功能更强大的运算符。
  • 比较运算符:>,<,>=,<=,!=, !==
  • 逻辑运算符:&&,||,!
  • 三目运算符:5>3? true:false
  • 逗号运算符:逗号运算符允许将多个表达式排在一起,整个表达式返回最右边的值。
  • void运算符:用于强行指定表达式不会返回值。
typeof 和 instanceof

typeof 用于判断某个变量的数据类型。即可作为函数使用如 typeof(a),也可作为运算符使用如 typeof a 。

instanceof 用于判断某个变量是否为指定类的实例。

alert(a instanceof);

语句

语句块

语句块就是使用花括号包含的多个语句,语句块是一个整体的执行体。如下:

{
	a=1;
	b=Math.PI;
	alert("hello");
}
空语句

最简单的空语句只有一个分号,主要用于没有循环体的循环。

异常抛出语句

javascript 支持异常处理,支持手动抛出异常,javascript 的所有异常都是Error 对象。javascript 中总是通过throw 语句抛出异常。``

throw new Error(errorString);

javascript 既允许在代码执行过程中抛出异常,也允许在函数定义中抛出异常。

异常捕捉语句

程序出现的异常都可以用 catch 捕捉。一旦出现异常,程序就跳转到对应的 catch 块。语法格式如下:

try{
	statements
}
catch(a){
	statements
}
finally{
	statements
}

javascript 异常体系远不如java 丰富,无需使用多个catch 块,catch 块只有一个。finally块可以省略,但一旦指定就必须执行。

with 语句

with 语句是一种简洁的写法,可以避免重复书写对象。语法格式如下:

with(object)
{
	statements
}

流程控制

分支

分支语句主要有 if 语句和 switch 语句。
if 语句:

if()
{
	statement...
}
else if()
{
	statement...
}
else
{
	statement...
}

switch 语句语法格式如下:

switch(wxpression)
{
	case condition 1:statement(s)
	     break;
	case condition 2:statement(s)
	     break;
	     .....
     case condition n:statement(s)
	     break;
	 default: statement(s)
}
while 循环

while 循环语法格式:

while(expression)
{
	statement
}

先判断expression逻辑表达式的值,当expression为true时,执行循环体,为false时结束循环。

do while 循环

do while 循环先执行循环体,然后判断循环条件,如果循环条件为真,执行下一次循环,否则循环终止。

do{
	statement...
}while(expression);
for 循环

for 循环是更简洁的循环语句,大部分情况下,for 循环可以替代 while 循环、do while 循环。语法格式如下:

for(initialization;test condition;iteration statement)
{
	statements
}
for in 循环

for in 循环本质是一种 foreach 循环,主要有两个作用:

  • 遍历数组里的所有数组元素
  • 遍历javascript 对象的所有属性
    语法格式如下:
for(index in object)
{
	statement...
}
break 和 continue

break 和 continue 都可以终止循环。continue 只是终止本次循环,接着开始下一次;break 则是完全终止整个循环,完全跳出循环体本身,执行后面的代码。

break 和 continue 可以添加标签,使用标签后则直接跳出标签所在循环。效果同上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值