初识JS
书写位置
1.内嵌式
在html文件里的<head></head>
或<body></body>
中加入<script></script>
标签
2.行内式
双引号中再有引号改用单引号
3.外链式(推荐)
在head中加入<script></script>
标签,并在src引用路径
当引入文件时,
<script>
中的内嵌代码失效
注释与规范
单行注释:Ctrl+/
多行注释:alt+shift+a
规范:
一、不建议一句代码后面加分号,直接换下一行
二、如果两句代码在同一行,需要分号隔开
JS的变量
变量指的是在程序中保存数据的一个容器,变量是计算机内中存储数据的标识符,根据变量名称可以获取到内纯中存储的数据,也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了是我们以后再次找到他。
语法
var 变量名=值
定义变量不赋值:
var 变量名
var 变量名,变量名,变量名
定义变量赋值:
var 变量名=值
var 变量名=值,变量名=值,变量名=值
变量命名规则和规范
规则:必须遵守,不遵守就会报错
1.一个变量名字可以由数字,字母,下划线,$组成
2.严格区分大小写
3.不能由数字开头
4.不能是保留字或关键字
5.不要出现空格
规范:建议遵守,不遵守不会报错
1.变量名尽量有意义(语义化)可以用拼音或英文
2.遵循驼峰命名规则,由多个单词组成的时候,从第二个单词开始首字母大写
3.不要用中文
注意加引号就是普通字符,不加引号才是变量名
数据类型
简单类型
1.Number(数字类型)
例:整数,小数(浮点数),科学计数法(e=10),十六进制(0x数字),八进制(0数字),二进制(0b数字),NaN(not a number 不是数值)
2e3=2*10^3
2.String(字符串类型)
变量值加引号写的是什么就输出什么
3.Boolean
值一共两个 true (真)、false(假)
4.Undefined
var 变量名(或者var 变量名=undefined)
声明但未负值(当下不知道要赋什么值,也可能以后不赋值)
5.Null
var 变量名=null
未来知道一定会赋值对象,一开始先赋值null
6.Symbol
复杂类型
数据类型的检测判断
用typeof关键字判断
法一:
console.log(typeof 变量名)
法二:
console.log(typeof(变量名))
判断结果一定显示是字符串
法一法二区别:
当进行运算判断时
法一会从左往右依次运算
法二会先算括号内的
例:
法一出来的为number100,而法二出来的是number
数据类型转换——转数值
法一:
var 变量2=Number(变量1)
可以把一个变量值强制转换成数值类型
可以转换小数,会保留小数
可以转换布尔值
遇到不可转换的都会返回显示NaN
强制转换true和false时会显示1和0
null会转成0
法二:
var 变量2=parseInt(变量1)
从第一位开始检查,是数字就开始转换,遇到非数字停止
开头不是数字,直接返回显示NaN
int整数型,不认识小数点,只能保留整数
法三:
var 变量2=parseFloat(变量1)
从第一位开始检查,是数字就开始转换,遇到非数字停止
开头不是数字,直接返回显示NaN
Float浮点型,认识一次小数点
法四:
非加号运算符
运算符两边必须都为可运算数字,否则返回显示NaN
数据类型转换——转字符串
法一:
var 变量2=String(变量1)
所有类型都能转成字符串
法二:
var 变量2=变量1.toString()
有一些数据类型不能使用.toString()方法,比如undefined和null
法三:
加号运算符
var 变量2=变量1+“(什么都不加,空字符串)”
只要+任意一边是字符串,就会进行字符串拼接(变成字符串)
数据类型转换——转布尔(Boolean)
Boolean(变量)
在js中,只有 空字符串、0、null、undefined、NaN是false
其余都是true
运算符
数字运算符(从左到右,乘除优先)
1.+:
只有+两边都是数字的时候才进行加法运算
如果是true+数字,true会自动转换成1
只要+任意一边是字符串,就会进行字符串拼接
2.-:
会执行减法运算
会自动把两边都转换成数字进行运算
3.*:
会执行乘法运算
会自动把两边都转换成数字进行运算
4. /除法 %取余
会执行除法运算
会自动把两边都转换成数字进行运算
例:分钟换算成小时:分
赋值运算符
1.=:
把=右边的赋值给左边的变量名
实现交换两个数
2.+=
表示变量在自身上加一个数
number=number+1等价于number+=1
3.-=
表示变量在自身上减一个数
4.*=
表示变量在自身上乘一个数
5./= 或 %/
表示变量在自身上除或除余一个数
比较运算符
1.=
2.>
3.<
4.>=
5.<=
6.==:
比较符号两边的值是否相等,不管数据类型
1==“1”
虽然一个是数字一个是字符串,但两个值一样的,所以得到true
6.===:
比较符号两边的值是否相等,需要看数据类型
1===“1”
虽然两个值一样的,但一个是数字一个是字符串,所以得到false
7.!=:
比较两边值是否不等
1!=“1”
因为两边值一样,所以得到false
8.!==:
比较两边值和数据类型是否不等
1!=“1”
因为两边数据类型不一样,所以得到true
逻辑运算符
1.&&:
进行 “且” 的运算
符号左边和右边必须都为true才能返回true
只要有一边不是true,就返回false
2.||:
进行 “或” 的运算
符号左右都为false才能返回false
只要有一边不是false,就返回true
3.!:
进行 “取反” 运算
本身是true的,会变成false
本身是false的,会变成true
!!变量,转换成布尔值
短路用法(&&和||)如果想让代码继续而不出现报错停掉代码
可以运用&&或||实现
且的特殊用法:
y为假的话,不用考虑后面了,不会强制转换进行报错
或的特殊用法:
z加上赋值之后就为真了,就不用考虑后面的,后面没机会执行
自增自减运算符
1.加加
进行自增运算
分成两种,前置++和后置++
前置++,会先把值自动+1,再返回
(先加+1再赋值)
后置++,会先把值返回,在自动+1
(先加赋值再+1)
2.减减
进行自减运算
分成两种,前置–和后置–
和++运算符道理一样
三元运算符
语法:条件? 条件为true 的时候执行 :条件为false 的时候执行
var age = 18
age >= 18 ? alert(‘已经成年’):alert(‘没有成年’)
if条件分支结构
通过一个if语句来决定代码是否执行
语法:
if (条件) {要执行的代码}
通过()里面的条件是否成立来决定{}里面的代码是否执行
if else语句
通过if条件来决定,执行哪一个{}里面的代码
语法:
if (条件) {条件为true 的时候执行}
else {条件为false 的时候执行}
注:两个{}内的代码一定有一个会执行
if else if …语句
可以通过if和eIlse if来设置多个条件进行判断
语法:
if (条件1) {条件1为true的时候执行}
else if (条件2) {条件2为true的时候执行}
else if (条件3) {条件3为true的时候执行}
会从头开始依次判断条件
如果第一个条件为true了,那么就会执行后面的{}里面的内容
如果第一个条件为false,那么就会判断第二个条件,依次类推
注:多个{},只会有一个被执行,一旦有一个条件为true 了,后面的就不再判断了
if else if … else语句
和之前的if else if …基本一致,只不过是在所有条件都不满足的时候,执行最后else后面的{}
if (条件1) {条件1为true的时候执行}
else if (条件2) {条件2为true的时候执行}
else if (条件3) {条件3为true的时候执行}
else(条件){前面if都不满足时执行}
switch条件分支结构
也是条件判断语句的一种
是对于某一个变量的判断
语法:
switch (要判断的变量) {
case 情况1:
情况1要执行的代码
break
case 情况2:
情况2要执行的代码
break
case情况3:
情况3要执行的代码
break
default:
上述情况都不满足的时候执行的代码
break
}
while循环
语法:
while (条件) {满足条件就执行}
若条件不满足,不会有执行的机会
因为满足条件就执行,所以我们写的时候一定要注意,设定一个边界值,不然就一直循环下去了
do…while循环
语法:
do { 执行的代码 } while (条件);
先执行一次代码,再判断是否满足条件,满足条件继续执行代码,不满足停止执行
for循环
for(语句1;语句2;语句3){执行代码}
执行语句1,然后判断语句2,满足就执行代码,然后执行语句3,若不满足语句2,则结束循环
循环控制语句
break终止循环
在循环没有进行完毕的时候,因为我设置的条件满足,提前终止循环。
要终止循环,就可以使用break关键字
例:
for(var i = 1;i <= 5; i++){
console.log(i)
if(i===3){
break
}
}
continue结束本次循环
在循环中,把循环的本次跳过去,继续执行后续的循环
跳过本次循环,就可以使用continue关键字
for(var i = 1;i <= 5; i++){
if(i===3){
continue
}
console.log(i)
}