文章目录
1.JS简介
- 作用:处理网页中的前端认证,即检查用户输入的内容是否符合一定的规则。也可做一些动态效果。
- ECMAScript是一个标准,有厂商实现,不同浏览器对该标准有不同实现:
- Java Script:
ECMAScript(标准)DOM(通过js操作网页) BOM(通过js操作浏览器) - 特点:
解释性语言;动态语言;基于原型面向对象语言
2.输入语言
- 将js代码写进script中
- 警告:
- document:向body中输出内容
console.log:向控制台输出内容
- js执行是从上往下依次执行
3.js编写位置
-
可以将js代码编写到onclick属性中,点击按钮时,js执行(不方便)
-
可以将js代码写进超链接的herf属性中,当点击时,会执行js代码(不方便)
-
将js写到script中
-
将js代码编写到外部文件中,后引用(好处:可以在不同页面同时引用)
-
注:scrip标签一旦引入外部文件,就不能在编写代码了,浏览器不显示。若需要,可在写一个scrip标签
4.基本语法
- 注释
- js中严格区分大小写
- js中每条语句以分号结尾(有些时候,浏览器会加分号,但有时会加错)
- js中会忽略多个空格和换行
5.字面量和变量
- 字面量:不可改变的量,可以直接使用
- 变量:可以用来保存字面量,且值是可以改变的,常用。也可对字面量进行描述
- 声明变量:在js中使用var关键字在声明一个变量
6.标识符
- 可以自主命名的称标识符
- 例如:变量名、函数名、属性名
- 命名标识符须遵守规则:
标识符可以含有字母、数字、——、$
标识符不能以数字开头
标识符不能是关键字和保留字
一般采用驼峰命名法:hello Word、xxxYyyZzz
7.数据类型
- 数据类型指的就是字面量的类型,共有六种类型:
String 字符串(基本数据类型)
Number 数值(基本数据类型)
Boolean 布尔值(基本数据类型)
Null 空值(基本数据类型)
Undefined 未定义(基本数据类型)
Object 对象(引用数据类型)
1.String字符串
- 加双引号表字符串,不加表变量
- 在js中字符串需要用引号引起来
- 单引号、双引号都可以,但不要混用
- 引号不能嵌套,双不能套双,单不能套单,但双可以套单,单可以套双。
- 在字符串中可以使用\作为转义符,表示一些特殊字符时,可以用\进行转义
" 表示"
’ 表示’
\n 换行
\t 制表符
\ 表示\
2.Number
- 所有数值类型都是number
- 包括整数和浮点数(小数)
- 可以使用运算符typeof检查变量的类型
- 数字最大值:Number.MAX_VALUE
- 若使用数值超过最大值,则表示infinty(正无穷),其为字面量,可直接使用
- NAN:一个特殊数字,Not A Number 字面量
- Number.MIN_VALUE:零以上的最小值
- 使用js进行浮点运算,可能不精确,不要用其算精确值较高的数值
3.布尔值
- 只有两个:true(真)false(假)
- 主要用于逻辑判断
4.Null、 Undefined
- Null:只有一个值,专门表示空对象。使用typeof检查null时,返回object
- Undefined :只有一个值,声明一个变量,不赋值时,它的值就是undefind
8.强制数据类型转换
- 只讲一个数据类型强制转换成其他数据类型
- 类型转换主要指,见其他数据类型转换为:String Number Boolean
1. 转换为spring转换方式:
调用被转换类型的toString()方法:(null undefined 没有)
调用a的toString()方法:var b = a.toString(); a = a.toString();
调用String()函数,并将转换的数值作为参数传递给函数
将a转换为字符串(a= String(a);)
- 注:使用String()进行转换时,对于number和 Boolean是调用toString()进行转换,对于null和undefined是直接转换为"null" “undefined”
2.转换为number
- 专门转换字符串
调用parseInt()可以将字符串中的有效数字提取出来,且只取整数
调用parseFloat()也可提取字符串中的有效数字,可取小数。 - 调用Number()函数
- 注:如果是纯数字,则转换为数字
若字符串是非数字,则转换为NaN
若字符串是空串,或者全是空格的字符,转为0
布尔转数字时,true转为1;false转为0
Null转数字为0
undefined转为数字NaN
3.转化为Boolean
使用Boolean()函数来将a转换为布尔值
数字转布尔,除了0和NaN,其他都是true
字符串转布尔,除了空串,其他都是true
null和undefined会转化为false
对象也会转化成true
9.其他进制的数字
- 16进制的数字:0x开头
- 8进制的数字:0开头
- 2进制数字:0b开头
- 为了让浏览器区分8进制和10进制,可以加入第二个参数
- 例如:a=“070” a= parseInt(a,10);
10.运算符
- 也叫操作符
- 可以对一个或者多个值进行运算,并获取运算结果
- typeof就是一个运算符,可以获得一个值的类型,它会将该值的类型以字符串的形式返回
1. 算数运算符:
+:对两个值进行加法运算,对非Number值转化为Number值进行运算,任何值加NaN,值为NaN;对字符串相加,则出现拼串的现象,任何值与字符串相加,则将值转化为字符串,进行拼串
-:对两个值做减法
*:对两个值做乘法
/:对两个值做除法
%:取模运算(取余数)
注:做减、乘、除法时,会自动转化为number,对非Number值转化为Number值进行运算
2.一元运算符:
+:正号,不会对数字进行改变
-:负号,对数字进行取反
(对于非number值,先转值,在运算,可以使用+将任意值转换为number)
自增、自减:
对变量自增时,原变量自动加一,自增分为++a,a++,变量值相同,但表达式的之不同。a++的值等于原变量的值,++a的值等于变量后的值
自减:–a和a–;a–的值等于原变量的值,–a的值等于变量后的值
3.逻辑运算符
!:非;可以对一个值进行非运算,对一个布尔值进行取反运算;若对非布尔值进行运算,则会先转化为布尔值,在进行运算;
&&:与;全true才为true,有false则为false,若第一个值为false则会出现短路现象,不会执行第二个值
||:或;有true则为true,全false才为false,若第一个值为true则不会检查第二个值
若为非布尔值,进行&&和||的运算时,会先转换为布尔值,在进行运算,并且返回原值。
&&运算时,若第一个值时true直接返回第二个值,若第一个值为false则直接返回第一个值
||运算时,若第一个值时true直接返回第一个值,若第一个值为false则直接返回第二个值
4.赋值运算符
=:将右侧值赋值给符号左侧的变量
+=:a=+5等价于a=a+5
-=:
*=:
/=:
%=:a%=5等价于a=a%5
5.关系运算符
比较两个值之间的大小关系,若关系成立,则返回true,若不成立,则返回false
;<;>=;<=;
非数值的情况:任何值与NAN比较都是false;对于非数值比较时,会将其转换为数字在比较;如果符号两侧的值都是字符串,不会将其转化为数字进行比较,而会分别比较字符串 的Unicode编码;比较字符编码的时候是一位一位进行,如果两位一样,比较下一位,所以借用英文进行排序;比较中文没有意义。
6.相等运算符
-
比较两个值是否相等,相等时返回true,不等返回false()
“”来比较两个值的,如类型不同,则会自动进行类型转换,然后再进行比较
null不会转换为0
undefined衍生自null,所以这两个值判断时,会返回true
NaN不和任何值相等,包括它本身
可以通过isNaN()函数来判断一个值是否是NaN,若是,返回true,不是,返回false -
!=:不相等,不相等返回true,相等返回false,若类型转换后相等,则返回false
-
===:全等,类型不同时,直接输出false
-
!==:不全等,类型不同时,直接输出false
7.条件运算符
- 语法:条件表达式?语句1:语句2;
- 先对条件表达式求值,若为true执行语句1,若为false,则执行语句2,并返回结果
- 如果条件表达式的求值结果时是非布尔值,会转化为布尔值进行运算
11.Unicode编码表
在js中使用时要加“\u”,要使用16进制编码;在网页中要加“&#”,且需使用10进制编码。