javascript的基本语法
1. 在HTML里面加入JavaScript
方法非常简单,就是通过成对的script标签,然后在script标签里面书写我们的JS代码
2. 标签位置
按照官方的说法,js代码写在HTML文档的任意位置都可以。按照传统的方法。就是写在head标签里面:
但是写在这里有一个问题:由于我们的页面在浏览器中呈现的时候是由上往下进行渲染的。这样会导致呈现页面的时候出现延迟,从而给用户呈现一片空白,用户体验不好。所以,现在的方法,script都是放在body的里面,元素的后面
3. 外部JS文件
① 符合web标准,结构,样式与行为进行相分离
② 可维护性高
③ 可以缓存:例如有两个HTML文件(A,B)都是用到同一个JS文件。当用户请求A页面的时候,A页面的HTML和JS被下载到用户本地。当用户再次请求B页面的时候,只需要下载B页面的HTML文档,因为JS文件已经有了。
4. JavaScript语法
1)JavaScript区分大小写
test和Test不是同一个东西
2)标识符
JavaScript里面的标识符由数字,字母,下划线(_)还有$组成,不能以数字开头
3)JavaScript注释
支持单行和多行注释
4)关键字
所谓关键字:就是系统定义好了的,有特殊功能的标识符。我们不能够使用关键字来作为我们的标识符
保留字:就是储备干部。所谓保留字,就是还没有正式成为关键字,但是在下一个版本有可能成为关键字的标识符。我们也不能用保留字来作为我们的标识符
5)变量
JavaScript是弱类型语言,在申明变量的时候不需要申明数据类型, 只需要一个var就可以了。
6)JavaScript里面的数据类型
JavaScript支持5种简单的数据类型:undefined,null,number,string,boolean
undefined:表示一个变量定义了但是没有赋值
弹出undefined
null:表示一个空的对象。事实上我们的undefined就是从null上派生而来的。
boolean:布尔类型
布尔类型的值只有两个:true和false。这两个值是区分大小写的
number类型:这个数据类型包含整数和实数还有,NaN
整数:分为正整数和负整数
八进制一般以0开头,十六进制一般以0x开头
无论几进制,参与运算后都以十进制输出
输出效果:
实数:所谓实数,通俗的来讲,就是小数,又被称之为浮点数。我们的浮点数有两种表现方式:小数型,科学计算型
数值范围:由于我们的内存有限,所以不可能保存所有的数
如果超出我们JavaScript所支持的数值范围,则会变成无穷大(infinity)或者无穷小(-infinity)
效果:
NaN:英语全称为Not a number:表示不是一个数
① 任何一个数和NaN进行操作的话,返回的会是NaN
最终输出NaN
② NaN与任何值都不相等,包括它自己本身
isNaN():判断一个数是否不是一个数
数值转换的3个函数:number(),parseInt(),parseFloat()
number():会将一个非数值转换为数值
如果是一个布尔值,要么被转换为1,要么被转换为0
如果是数字,该是多少就是多少
如果是一个null,会被转换为0
如果是一个undefined,会被转换为NaN
字符串转数字:
如果字符串里面只包含数字,那么会被转为十进制
如果字符串为空,将会被转换为0
如果字符串有字母:那么将会被转换为NaN
如果字符串是八进制,那么会忽略前面的0,但是如果是十六进制,那么会转为相应的十进制。
parseInt():该函数会更多的看是否有数字,有的话就被转换为数字。如果字符串为空,转换为NaN,还有一点,如果是3.14,那么会将其转换为3
事实上parseInt()接收两个参数,第二个参数指定将其转换为几进制
示例二:
parseFloat():该函数只能解析10进制,所以没有第二个参数。会将带有小数点的字符串转为小数。
string数据类型:就是我们的字符串数据类型
1)在JavaScript里面,字符串可以使用双引号,也可以使用单引号,没有任何区别。
2)如果字符串里面本身就含有单引号或者双引号,那么外层就需要和里面的相反
当然我们也可以使用转移字符,如下:
字符串数据类型非常的霸道,任何数据类型和字符串一相加,最终得到字符串数据类型
最终得到的肯定是string数据类型
还有一种方法也可以将其他数据类型转换为string,通过toString():toString()这个函数是转换null和undefined以外的数据类型。
最终也会被转换为string数据类型
toString()可以接受两个参数,可以指定将数值转换为多少进制
String()函数:可以将5种数据类型都转换为字符串数据类型。
运算符
① 一元运算符
只能操作一个值得操作符就是一元运算符。自增自减就是典型的一元运算符。
a++(a--)和++a(--a)的区别
a++:先参与运算,然后再自增1
++a:先自增1,然后再参与运算
在JavaScript里面,自增和自减并不能仅仅局限于数值,其他类型也可以。
1)如果一个字符串包含有效数字,那么先将其转换为数字,然后再执行加1或者减1的操作。字符串变量变为了数值数据类型。
2)如果字符串里面包含有字母,那么将变量的值转换为NaN,字符串变量变为数值数据类型
3)遇到布尔值false时,转换为0
4)布尔值true的时候,转换为1
5)如果是浮点数,那么计算和数学是一样的
② 布尔运算符
1)非
非真即假,非假即真
2)与,用两个&&来表示与,在JavaScript里面,&&存在短路现象。所谓短路现象,就是当第一个操作数(表达式)为假的时候,就不会再对第二个操作数(表达式)进行判断。
与操作符不一定返回真假,如果两个都为真,会返回第二个操作数
1. 如果第一个操作数是null,则返回null
2. 如果第一个操作数是NaN,则返回NaN
3. 如果第一个操作数是undefined,则返回undefined
3)或,或操作符用||来表示。或也存在短路现象。也就是说,如果第一个操作数(表达式)是真,那么就不会再去判断第二个操作数(表达式)
或的返回值是真的那个值,如果两个都为真,那么返回第一个操作数
1. 如果有真的,那么返回真
2. 如果两个都为真,则返回第一个操作数
3. 如果两个数都是null,则返回null
4. 如果两个数都是NaN,则返回NaN
5. 如果两个数都是undefined,则返回undefined
③ 乘性运算符
1)乘法
2)除法
JavaScript里面的除法可以得到小数
这一点和C语言不一样,需要注意!
3)取模
所谓取模,就是取余数
一个数对比自己大的数取模,才会得到自己本身
④ 加性运算符
1)加法
加法需要着重强调:如果是普通数相加,那么就是简单的数值相加,但是如果是字符串相加,则表示字符串拼接
2)减法
普通的减法操作。但是需要注意:JavaScript里面会自动的进行数据类型转换
⑤ 关系运算符
大于小于,大于等于,小于等于
字符串的关系比较:是按照ASCII码来进行比较的
一个是数字,一个是字符串:
如果是含有有效数字的字符串,那么首先会将字符串转换为数字,如果不是有效的字符串(包含了字母)那么会将其转换为NaN