JS语法详细解释(JavaScript大总结)

JavaScript

  1. 是一种脚本语言
  2. 具有跨平台特点
  3. 主要环境为各种浏览器

JS和Java两者比较

比较

JavaScrip

Java

发布公司

Netscape

Sun

功能目的

扩展浏览器功能

面向对象程序设计语言

基本对象

丰富的内部函数

必须定义类

执行方式

无需编译,浏览器解释执行

必须先编译,生成字节码,然后Java虚拟机运行字节码

声明方式

弱类型变量语言

强类型变量语言

代码格式

文本字符格式,可嵌入HTML文档中

必须外部引用进行装载

JS文件方法

在默认情况下,当浏览器解析网页时,解析到

<script src="引用JS文件名.js"></script>
//defer:当页面加载完毕后执行JS脚本
<script src="引用JS文件名.js" defer></script>
//async:JS脚本在页面加载过程中执行,执行JS脚本内容
<script src="脚本名.js" async></script>

当浏览器不支持或者禁用JavaScript时,显示提示信息

<noscript>
	<h1>JavaScript功能不支持或者禁用</h1>
</nosrcript>

JS数据类型和变量

数据变量定义方式

  1. 隐式定义:直接变量赋值
  2. 显示定义:使用var关键字
    注意:JS中变量名区分大小写
a="隐式定义";
var b="显示定义";
var i,j=0,k="多变量初始化";

变量类型转化


目标类型


字符串类型

数值型

布尔型

对象

undefined

“undefined”

NaN

false

Error

null

“null”

0

false

Error

字符串

不变

数值或者NaN

true

String

空字符串

不变

0

false

String

0

“0”

0

false

Number

NaN

“NaN”

NaN

false

Number

Infinity

“Infinity”

Infinity

true

Number

-Infinity

“-Infinity”

-Infinity

true

Number

数值

对应字符串

不变

true

Number

true

“true”

1

不变

Boolean

false

“false”

0

不变

Boolean

类型强转换:
toString()转换为字符串
parselnt()转换为整型
parseFloat()转化为浮点数

变量作用域

  1. 全局变量:全部脚本都可以访问
  2. 局部变量:只有函数内可以访问

局部函数中使用Var定义的变量是局部变量

<script>
//局部变量覆盖全局变量
var test="全局变量";
function checkScope{
 	var test="局部变量";
 	alert(test)
}
checkScope();
alert(test);
</script>

判断类型并执行循环

<script>
	function test(a){
		var i=0;
		//当过程参数a使用typeof判断类型是否为objcet
		if(typeof a=="objcet"){
			for(var i=0;i<10;i++){
				document.write(i);
			}
		}
			alter(i+"循环结束依然存在");
	}
test(document);
</script>

变量提升

定义全局变量后,过程中直接引用全局变量,则声明变量语句提升至引用语句前,提示undefined;

定义变量关键字

var 定义无块变量
let 定义有块变量
const 常变量


基本数据类型

  • 数值类型:包含整数和浮点数
  • 布尔类型:false和true
  • 字符类型:必须用引号括起来
  • undefined类型:没有初始值
  • null类型:变量值空

科学计数法

  • 1.23e-3和1.23E-3
  • 十进制不要以0开头;
  • 十六进制以0x或者0X开头,9以上数字以a~f表示;
  • 八进制以0开头,包含0~7;
  • infinity正无穷
  • infinity负无穷
  • NaN不会与任何数值变量相等;
  • 判断函数是否为NaN:isNaN()

字符串操作函数

String()构建一个字符串
charAt()获取字符串索引处字符
charCodeAt()返回字符串特定索引处对应的unicode值
length()返回字符串长度
toUpperCase()转换为大写字母
toLowerCase()转化为小写字母
fromCharCode()将Unicode值转化为字符串
indexOf()指定字符第一次出现位置
lastIndexOf()指定字符最后一次出现位置
substring()返回特定子串
slice()返回子串,比substring()更为强大
match()使用正则表达式搜索目标子串
search()使用正则表达式搜索目标子串
concat()多个子串合并为一个子串
split()将字符串分割为多个子串
replace()字符串中指定字符被替代

substring()和slice()格式

  • substring(开始,[结束])从开始处,截取到结束;其中包含开始字符,不包含结束字符。
  • slice(开始,[结束]) 最大区别是可以接受负数缩影,负数为右边开始
<script>
	var s="abcdefg";
	//结果为7
	var count=s.length;
	//unicode97值为a
	var c=String.fromCharCode(97);
	//c在字符串中位置为3,初始为1
	var d=s.indexOf("c");
	//没有查到,输出为-1
	var e=s.indexOf("c",4);
	//e的位置为4,初始为0
	var f=s.lastIndexOf("e");
	//abcd
	var g=s.slice(0,4);
	//cd
	var h=s.slice(2,4);
	//def从第四个字符开始到倒数第一个字符结束
	var i=s.slice(3,-1);
</script>

转义字符

  • \b退格
  • \t表示一个tab
  • \n换行回车
  • \v垂直制表位
  • \r回车
  • "双引号
  • '单引号
  • \反斜线

正则表达式

正则表达式“合法字符”

字符

解释

x

字符x

\ommm

八进制mmm

\xhh

十六进制hh

\uhhh

十六进制hhh

\t

制表位

\n

换行符

\r

回车符

\f

换页符

\a

报警符

\e

Escape符

\cx

x对应的控制符:例如\cM表示Ctrl+M,其中x值必须是字母

正则表达式“通配符”

预定义字符

说明

\d

匹配0~9

\D

匹配非数字

\s

匹配所有空白字符

\S

匹配所有非空白字符

\w

所有字符

\W

所有非字符

[]表示法

[a-z]a~z之间;[axy]表示a,x,y表示三个字符任意字符

$

结尾

^

开头

正则表达式“频率符”

特殊字符

说明

?

零次或者一次

*

零次或者多次

{m,n}

至少出现m次,最多出现n次

| 互斥条件

((abc)|(efg))