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