JavaScript复习

  • 一、计算机语言
  • 二、JavaScript代码的书写位置
  • 三、变量
  • 四、变量的命名规则和命名规范
  • 五、数据类型(重点)
  • <1>.String 字符串
  • <2>.Number 数值
  • <3>.Boolean 布尔值
  • <4>.Null 空值
  • <5>.Undefined 未定义
  • 六、其他数据类型转成数值
  • 七、其他数据类型转成字符串
  • 八、其他数据类型转成布尔
  • 九、算术运算符
  • 十、一元运算符
  • 十一、自增和自减
  • 十二、逻辑运算符
  • 十三、赋值运算符
  • 十四、关系运算符
  • 十五、相等运算符
  • 十六、条件运算符
  • 十七、if语句
  • 十九、WHILE循环


一、计算机语言

计算机语言(Computer Language)指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息
的媒介。计算机系统最大特征是指令通过- -种语言传达给机器。为了使电子计算机进行各种工作,就需要有一套用
以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。这些就
是计算机能接受的语言。

二、JavaScript代码的书写位置

和css一样,我们的js也可以有多种方式书写在页面上让其生效
js也有多种方式书写,分为行内式,内嵌式,外链式
1.行内式JS代码(不推荐)
写在标签.上的js代码需要依靠事件(行为)来触发

2.内嵌式JS代码
内嵌式的js代码会在页面打开的时候直接触发

3.外链式JS代码(推荐)
外链式js代码只要引入了html页面,就会在页面打开的时候直接触发
 新建一个.js后缀的文件,在文件内书写js代码,把写好的js文件引入html 页面

三、变量

变量指的是在程序中保存数据的一个容器
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
也就是说,我们向内存中存储了一个数据,然后要给这个数据起一一个名字,为了是我们以后再次找到他
语法:var变量名=值
注意:
1.一个变量名只能存储一个值
2.当再次给一个变量赋值的时候,前面一-次的值就没有了
3.变量名称区分大小写(JS 严格区分大小写)

四、变量的命名规则和命名规范

规则:必须遵守的,不遵守就是错
1. 一个变量名称可以由数字、字母、英文下划线(_) 、美元符号($)组成
2.严格区分大小写
3.不能由数字开头
4.不能是保留字或者关键字
5.不要出现空格
规范:建议遵守的(开发者默认),不遵守不会报错
1.变量名尽量有意义(语义化)
2.遵循驼峰命名规则,由多个单词组成的时候,从第二个单词开始首字母大写
3.不要使用中文

五、数据类型(重点)

是指我们存储在内存中的数据的类型
我们通常分为两大类 基本数据类型 和 复杂数据类型

<1>.String 字符串

1.在JS中,使用字符串,需要使用引号("")引起来;
例如 var str = "hello";
2.使用双引号("")或单引号('')都可以但是不要混着用;
3.引号不能嵌套,双引号里不能放双引号,单引号里不能放单引号
例如 var x = "他说'hello'";
4.在字符串中,我们可以使用 \ 作为转义字符,当表示一些特殊符号时,
可以使用 \ ,进行转移 
例如 var x = "他说:\"你好,世界!\"";
转义字符常见的用处:
\" 表示 "
\' 表示 '
\n 表示 换行
\t 表示 制表符(相当于按了一次tab键,没事别乱用)
\\ 表示 \
\\\\ 表示 \\
5.var x = "hi"; 加上""表示一个字符串
  var x = hi;   不加""表示一个变量

<2>.Number 数值

在JS中,所有的数值都是Number类型,
包括整数和浮点数(小数)

PS:
1.检查变量类型 运算符typeof
语法:typeof 变量

2.JS中,可以表示数字的最大值:

Number.MAX_VALUE[1.7976931348623157e+308(308位的数值)]
如果使用Nmuber表示的数字超过了最大值,则会返回一个Infinity(表示正无穷)
使用typeof 检查Infinity,也会返回Number
此外,Infinity本身就是一个字面量
也可以表示数字的最小值:
Number.MIN_VALUE[5e-324(0以上的最小值)]

3.在JS中,如果使用字符串进行数学运算,则会返回NaN
NaN是一个特殊的数字,表示 Not a Number
此外,NaN本身也是一个字面量

4.如果使用JS进行浮点数运算,可能得到一个不精确的结果,
所以千万不要使用JS进行对精确度要求比较高的运算。

<3>.Boolean 布尔值

布尔值只有两个,主要用来做逻辑判断
一个是true,表示真
另一个是false,表示假
例如:var bool = true;或var bool = false;
使用typeof检查布尔值时,会返回Boolean

<4>.Null 空值

Null(空值)类型的值只有一个,就是null
例如:var x = null;

<5>.Undefined 未定义

Undefined类型的值只有一个,就是undefined
当声明一个变量,但是并不给变量赋值时,它的值就是undefined
使用typeof检查一个undefined时,也会返回undefined

六、其他数据类型转成数值

1. Number(变量)
可以把一本变量强制转换成数值类型
可以转换小数,会保留小数
可以转换布尔值
遇到不可转换的都会返回NaN

2. parseInt(变量)
从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回NaN
不认识小数点,只能保留整数

3. parseFloat(变量)
从第一位开始检查,是数字就转换,知道一个不是数字的内容
开头就不是数字,那么直接返回NaN
认识一次小数点

4.除了加法以外的数学运算
运算符两边都是可运算数字才行
如果运算符任何- -遍不是一个可运算数字, 那么就会返回NaN
加法不可以用

七、其他数据类型转成字符串

1.变量. tostring()
有一 些数据类型不能使用tostring()方法,比如undefined 和nu11

2. string(变量)
所有数据类型都可以

3.使用加法运算
在JS里面,+由两个含义
字符串拼接:只要+任意-边是字符串,就会进行字符串拼接
加法运算:只有+两边都是数字的时候,才会进行数学运算

八、其他数据类型转成布尔

1. Boolean(变量)
在js中,只有“”、0、nu11、undefined、 NaN, 这些是false
其余都是true
运算符(操作符)
通过运算符可以对一个或者多个值,进行运算并获取运算结果。
例如:typeof就是运算符,可以来获得一个值的类型,它会将值的类型以字符串的形式返回。

九、算术运算符

+可以以对两个值加法运算,并将结果返回
注:
1.当对非Number类型的值进行运算时,会将这些值转换为Number类型然后运算;
2.任何值和NaN做运算,都得到NaN;
3.如果对两个字符串进行加法运算,则会做拼串;
4.任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作;
5.可以将任意的数据类型+一个"",即可将其转换为String,我们可以利用这一特点,
来将一个任意的数据类型转换为String。
这是一个隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数.

-可以对两个值进行减法运算,并将结果返回

*可以对两个值进行乘法运算,并将结果返回

/-可以对两个值进行除法运算,并将结果返回
注:
1.任何值做-、*、/运算时,都会自动转换为Number,
我们可以利用这一特点,做隐式的类型转换,
可以通过为一个值-0、*1、/1来将其转换为Number,原理和Number()函数一样,使用起来更加简单。

%取模运算(取余数)

十、一元运算符

只需要一个操作数
+ 正号
正号不会对数字产生任何影响
- 负号
负号可以对数字进行负号的取反(负负得正)
注:对于非Number类型的值:它会将其先转换为Number,然后再运算。
所以,可以对一个其他的数据类型使用+,来将其转换为Number,它的原理和Number()函数一样。

十一、自增和自减

自增:通过自增可以使变量再自身的基础上增加1
对于一个变量自增以后,原变量的值会立即自增1
自增分成两种:如后++,即a++;如前++,即++a,无论是a++,还是++a,
都会立即使原变量的值自增1。不同的使a++和++a的值不一样

a++的值等于原变量的值,即自增前的值。(先运算后自增)
++a的值等于原变量新值,即自增后的值。(先自增后运算)

例如 a++;(a++是表达式,不过a的值被修改了)
自减:通过自减可以使变量在自身的基础上减1
自减分为两种:后--,即a--;先--,即--a
无论使a--还是--a都会使立即使原变量的值自减1
不同的是a--和--a的值不同
a--是变量的原值(自减前的值)
--a是变量的新值(自减后的值)

十二、逻辑运算符

JS中为我们提供了3中逻辑运算符
!非
!可以以用来对一个值进行非运算
所谓非运算就是指对一个布尔值进行取反操作,true变false,false变true

如果对一个值进行两次取反,它不会变化,
如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反。

所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值,
可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()一样
&&与(一假全假)
&&可以对符号两侧的值进行与运算,并返回结果,如果两个值都是ture,则返回ture(false同理)
但只要有一个false,则返回false.
运算规则:
1.两个值中,只要有一个值为false,就返回false,只有两个值都为true时,才会返回true
2.在JS中,&&属于短路的与,如果第一个值为false,则不必再看第二个值
||或(一真全真)
||可以对符号两侧的值进行或运算,并返回结果
运算规则:
1.两个值中,只要有一个true,就返回true
如果两个值都为false,才返回false
2.JS中的||属于短路的或,如果第一个值为true,则不会检查第二个值
&&、||非布尔值的情况
对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值。
&&中,查找第一个为false,则返回第一个;
查找第一个为true,不符合条件,则继续查找第二个
(即如果第一个值为true,则必然返回第二个值;如果第一个值为false,则直接返回第一个值。)
||中,查找第一个为true,则返回第一个;
查找第一个为false,不符合条件,则继续查找第二个

十三、赋值运算符

=:可以将符号右侧的值赋值给符号左侧的变量
+=:a += 5; 等价于 a = a + 5;
-=:a -= 5; 等价于 a = a - 5;
*=:a *= 5; 等价于 a = a * 5;
/=:a /= 5; 等价于 a = a / 5;
%=:a %= 5; 等价于 a = a % 5;

十四、关系运算符

通过关系运算符可以比较两个值之间的大小关系,如果关系成立,
它会返回true,如果关系不成立,则返回false
>
判断符号左侧的值是否大于右侧的
如果关系成立,则返回true;如果关系不成立,则返回false
>=
判断符号左侧的值是否大于或等于右侧的值
<
判断符号左侧的值是否小于右侧的
<=
判断符号左侧的值是否小于或等于右侧的值
非数值的情况
1.对于非数值进行比较时,会将其转换为数字,然后再比较;

2.任何值和NaN做任何比较都是false;

3.如果符号两侧都是字符串时,不会将其转换为数字进行比较,
而会分别比较字符串中字符的Unicode的编码;

4.比较字符编码时,是一位一位进行比较,
如果两位一样,则比较下一位,所以可以借用它来对英文进行排序;

5.如果比较的是两个字符串型的数字,可能会得到不 可预期的结果.
注:在比较两个字符串型的数字时,一定要转型
例如:
document.write("121232" < + "5");

十五、相等运算符

相等运算符用来比较两个值是否相等,
如果相等,返回true;否则,返回false
使用==来做相等运算
当使用 == 来比较两个值时,如果值的类型不同,
则会自动进行类型转换,将其转换为相同的类型,然后再比较
undefined 衍生自 null
这两个值做相等判断时,会返回true
NaN不和任何值相等,包括它本身
但是可以通过isNaN()函数,来判断一个值是否是NaN
如果该值是NaN则返回true,否则,则返回false
不相等用来判断两个值是否不相等,如果不相等返回true,否则,返回false
使用!=来做不相等运算
不相等也会对变量进行自动的类型转换,如果转换后类型相等,他也会返回false
===全等:用来判断两个值是否全等,它和相等类似,不同的是它不会自动做类型转换
如果两个值的类型不同,直接返回false
!==不全等
用来判断两个值是否不全等,和不等类似,不同的是它不会自动做类型转换
如果两个值的类型不同,直接返回false

十六、条件运算符

条件运算符(三元运算符)
语法:条件表达式 ? 语句1 : 语句2;
执行的流程:
条件运算符在执行时,首先对条件表达式进行求值;
如果该值为true,则执行语句1,并返回执行效果
如果该值为false,则执行语句2,并返回执行结果
注:如果条件的表达式的求值结果时一个非布尔值,
会先将其转换为布尔值,然后再运算

十七、if语句

通过一个if语句来决定代码是否执行
语法: if (条件) {要执行的代码}
通过()里面的条件是否成立来决定{}里面的代码是否执行
可以通过 if和else if来设置多 个条件进行判断
语法: if (条件1) {条件1为true的时候执行} else if (条件2) {条件2为true的时候执行}
会从头开始依次判断条件
如果第一个条件为true了,那么就会执行后面的{}里面的内容
如果第一个条件为false, 那么就会判断第二个条件,依次类推
多个{},只会有一一个被执行,一旦有一个条件为true 了,后面的就不在判断了
<script>
        var n=9;
        if(n%2== 0){
            console. log("偶数")
        } else {
            console. log("奇数")
        }
    </script>

十八、SWITCH条件分支结构(重点)

也是条件判断语句的一种
是对于某一个变量的判断

语法:

switch (要 判断的变量) {
case情况1:
情况1要执行的代码
break
case情况2:
情况2要执行的代码
break
case情况3:
情况3要执行的代码
break
default:
上述情况都不满足的时候执行的代码
}
要判断某一个变量等于某一个值得时候使用

十九、WHILE循环

while, 中文叫 当..时 ,其实就是当条件满足时就执行代码,一旦不满足了就不执行了
语法while (条件) {满足条件就执行}
因为满足条件就执行,所以我们写的时候一定要注意,就是设定一个边界值,不然就一直循环下去了
// 1.初始化条件
var num = 0;
//2.条件判断
while (num < 10) {
// 3.要执行的代码
console.1og('当前的num的值是’+ num)
// 4.自身改变
num=num+1