文章目录
前言
关于Java script的相关知识总结
提示:以下是本篇文章正文内容,下面案例可供参考
一、JS编写位置
界面上
界面上的Head部分
<head>
<title> </title>
<script> </script>
</head>
在调用脚本时,已经完成加载了
界面上的body部分
<body>
<form>
<div> </div>
</form>
<script> </script>
</body>
在生成页面的时候就已经完成加载了
总结
放在head和body中没有什么区别
只有这些页面使用且代码量不多时,直接写在界面上比较方便
JS文件
代码量多且复杂的JS,可以放在.js文件中,然后引用<script src="./10-1.js"></script>
最好使用相对目录,如果层级很深的话使用./
二、JS变量声明与数据类型
变量声明
变量声明方式
const:const用于修饰常量,定义的变量不可修改,而且必须初始化,声明位置不限(通常声明在js开头),与java类的final关键字性质一样
let:let声明的变量在{}中使用,变量的作用域限制在块级域中
var:var声明的变量可以是全局的(函数外面),也可以是函数级的(函数内部)
总结
函数内部声明变量的时候,一定要使用var命令,如果不用的话就变成声明了一个全局变量
函数外面声明的变量,在函数内部改变该值后,函数外面的该变量的值也随之改变
在函数外面使用var声明一个变量后,再在函数内部使用var再次声明一次并改变其值,函数外面的该变量的值不会发生改变
js声明的变量取值的原则:就近原则
js是弱类型语言,不同的数据类型可以用同一个变量名表示
函数内部声明的变量,不会影响函数外部同名的变量的值
数据类型
Number:数据类型
NaN:Number 中的特殊数值
String:字符串
1、字符串可以有单引号、双引号表示。字符串是不可变的,一旦创建,值就不能改变
2、要改变某个变量保存的字符串,首先要销毁原来的字符串,然后于用另一个包含的字符串填充该变量
Boolean:布尔型
1、true:不一定=1
2、false:不一定=0
区分大小写,True和False是标识符
Null
1、object:不存在的对象
2、只有一个值。null是表示一个空对象指针
undefined
1、没有初始化,定义的值
2、只有一个值,在使用var 声明变量但未对其加初始化
object:
1、Data
2、function
3、Array
biglnt:Javascript 中的任意精度整数,可以安全存储和操作大整数。即始超出 Number 能够表示的安全整数范围
三、 JS运算符
赋值运算符
= 赋值运算符向变量赋值
+= 赋值运算符向变量添加值
-= 赋值运算符从变量中减去一个值
*= 赋值运算符相乘变量
/= 赋值运算符对变量相除
%= 赋值运算符把余数赋值给变量
加法运算符(+)
对数字相加
乘法运算符(*)
对数字相乘
算数运算符
+ 加法
- 减法
* 乘法
/ 除法
% 系数
++ 递加
-- 递减
字符串运算符
+= 赋值运算符也可用于相加(级联)字符串
在用于字符串时,+ 运算符被称为级联运算符
字符串和数字的相加
相加两个数字,将返回和,但对一个数字和一个字符串相加将返回一个字符串
比较运算符
== 等于
=== 等值等型
!= 不相等
!== 不等值或不等型
> 大于
< 小于
>= 大于或等于
<= 小于或等于
? 三元运算符
逻辑运算符
&& 逻辑与
|| 逻辑或
! 逻辑非
类型运算符
typeof 返回变量的类型。
instanceof 返回 true,如果对象是对象类型的实例。
位运算符
& 与
| 或
~ 非
^ 异或
<< 零填充左位移
>> 有符号右位移
>>> 零填充右位移
四、JS if语句和switch语句
if
语法
if(){
}else if(){
}
优缺点
if else的优点:if else能应用于更多的场所以if else比较灵活。
if else的缺点:if else必须遍历所以得可能值。
switch
语法
switch(n){
case 4 :
;
break;
case 5 :
);
break;
优缺点
1、switch…case占用较多的代码空间,因为它要生成跳表,特别是当case常量分布范围很大但实际有效值又比较少的情况,switch…case的空间利用率将变得很低。
2、switch…case只能处理case为常量的情况
3、当分支较多时,当时用switch的效率是很高的。因为switch是随机访问的,就是确定了选择值之后直接跳转到那个特定的分支,但是if。。else是遍历所以得可能值,知道找到符合条件的分支,如此看来switch的效率确实比ifelse要高的多
4、switch…case只能处理case为常量(是不可以改变的值)的情况,对非常量的情况是无能为力的。所以,switch只能是在常量选择分支时比ifelse效率高,但是ifelse能应用于更多的场合,ifelse比较灵活
区别
if语句:表达式的结果是boolean布尔类型(常用于区间判断)
switch语句:表达式类型不能是boolean布尔类型,可能是byte,int,char,string,枚举(常用于等值判断)
switch case会生成一个跳转表来指示实际的case分支的地址,而if…else却需要遍历条件分支直到命中条件
选择
能用switch语句实现的就一定可以使用if来实现,但是反之不一定,如果是区间范围就采用if,如果是等值判断请使用switch
五、JS for循环与while语句
for循环
语法
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行
将for循环用于循环遍历数组,来给循环的数组加上监听事件等还是很方便的。有了for循环,不需要一个一个的来加事件
while循环
语法
while(条件语句){
要循环的内容;
条件控制语句;(如i++等)
}
区别
while
条件:根据条件表达式的值决定循环操作
结构:复杂,结构比较宽松
效率:存在一定安全隐患
do while
格式
do{
执行程序
}while(条件)
规则
不管条件是否成立,都会先执行一次程序,执行完后,再判断条件是否循环
for
条件:根据操作次数决定循环操作
结构:比较简洁,要求比较严格
效率:执行效率比较高
for/in
一般来说,在循环结构中动态改变循环变量的值时,建议使用 while 结构,而对于静态的循环变量,则可以考虑使用 for 结构
运算本质上没什么区别,while变量声明在外面。
for 三个条件写在一起,语法更加紧凑。
for循环是while的语法糖
break 和 continue
break 和 continue关键字都可以用在 for 和 while 循环结构中,表示跳出循环
break:直接跳出循环
continue 语句用在循环结构内,用于跳过本次循环中剩余的代码,并在表达式的值为真时,继续执行下一次循环。
六、函数
JavaScript 函数是被设计为执行特定任务的代码块。
JavaScript 函数会在某代码调用它时被执行
语法
通过 function 关键词进行定义,其后是函数名和括号 ()。
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)
函数参数(Function parameters)是在函数定义中所列的名称。
函数参数(Function arguments)是当调用函数时由函数接收的真实的值。
在函数中,参数是局部变量。
函数调用
当事件发生时(当用户点击按钮时)
当 JavaScript 代码调用时
自动的(自调用)
函数返回
当 JavaScript 到达 return 语句,函数将停止执行