尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通)
一、Unicode编码
1.使用方法
-在字符串中如果要使用unicode编码,那么可以用 \u四位编码 来输出。
2.unicode网站
unicode网址
二、相等运算符
1.相等
-相等运算符用来比较两个值是否相等,如果相等返回true,不相等会返回false
2.相等运算的规则
-使用==来做相等运算,当两个值类型不同时,则会将其转换成相同的类型进行比较。
例子: 当 true 与 ”1“进行比较时,这两个值都转换成了number进行比较,返回的结果是一个true
-undefined 衍生自 null ,所以当这两个值进行相等判断时,会返回一个true
-NaN不和任何值相等,包括它本身,可以通过isNaN()函数来判断是否为NaN,如果该值是NaN则会返回一个true。
3.不相等
-不相等用来判断两个值是否不相等
-使用”!=“来做不相等运算 。 不相等也会对变量的类型进行自动转换,转换为相等类型后再进行比较。
4.全等("= = =")
这里三个等号间不含空格(此处这么写是因为markdown限制了连续输入三个等号)。
-全等用来判断两个值是否相等,它和相等类似,不同的是它不会做自动的类型转换。如果两个值的类型不同,会直接返回false。
5不全等("!= =")
这里的等号间也不含空格。
-用来判断两个值是否是不全等,和不等类似,不同的是它不会做自动的类型转换。如果两个值的类型不同,会直接返回true。
三、条件运算符(三元运算符)
1.语法
条件表达式?语句1:语句2;
-执行的流程:条件运算符在执行时,首先对条件表达式进行求值。如果该值为true,则执行语句1,并返回执行结果。如果该值为false,则执行语句2,并返回执行结果。
例: 获取 a 和 b 的最大值 var a=30; var b =20; max=a>b?a:b;
-如果条件表达式的值是一个非布尔值,那么会将其自动转换成布尔值
四、逗号运算符及运算符的优先级
1.逗号运算符
-”,“运算符,可以分割多个语句,一般在声明多个变量时使用。
2.运算符的优先级
-和数学中一样,在JS中运算符也有优先级。比如 先乘除 后加减
-在运算符的优先级表中,越靠上优先级越高
五、代码块
1.我们的程序是由一条一条语句构成的。语句是按照一条一条自上向下执行的。
2.在JS中可以使用{}为语句分组,同一个{}中的语句我们称为是一组语句,它们要么都执行,要么都不执行。
3.一个{}中的语句我们也成为一个代码块,代码块后面不用写分号
4.JS中的代码块只具有分组的作用,没有其他的作用。
注意:代码块里面的内容,也算是全局变量,在代码块外部也能使用。
六、流程控制语句
1.流程控制语句
-通过流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行。
2.语句的分类
-第一种:条件判断语句
-第二种:条件分支语句
-第三种:循环语句
3.条件判断语句(if语句)
-使用条件判断语句,可以在执行某个语句前进行判断,如果条件成立才会执行语句。
-语法一:if语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true,则执行if后的语句。如果条件表达式的值为false,则不会执行if后的语句。 if语句只能控制紧随其后的那条语句,如果希望if语句可以控制多条语句,可以将这些语句统一放到代码块中。
-语法二:if(条件表达式)
{
语句…
}
else{
语句…
}
-语法三:if(条件表达式){
语句…
}else if(条件表达式){
语句…
}
else{ 语句…
}
当该语句执行时,会从上到下依次对条件表达式进行求值,如果值为true,则执行当前语句,如果值为false,则继续向下判断else if后的条件表达式。如果所有的条件都不满足,则执行else后的语句。该语句中,只会有一个代码块被执行,一但执行了,整个语句就会结束。
4.prompt()函数
-prompt()可以弹出一个提示框,该提示框中,会带有一个文本框。用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数,该字符串将会作为提示框的提示文字。 用户输入的内容将会作为一个值返回,可以设置一个变量来接收返回值。
-prompt()函数的返回值是string类型的。
5.条件分支语句(switch语句)
-语法:switch(条件表达式){
case 表达式:
语句…
break;
case 表达式:
语句…
break;
case 表达式:
语句…
break;
default:
语句…
break;
}
-执行流程:执行时会依次将case后的表达式的值和switch后的条件表达式的值从上到下依次进行全等比较,如果比较结果为true,则从当前case处开始执行代码,当前case后的语句都会执行,我们可以在每个case后跟着使用一个break关键字,使用break;可以退出switch语句。
如果比较结果为false,则继续向下进行比较。
如果所有的比较结果都为false,则只执行default后的语句。
switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,同样使用if也能实现switch的功能,实际上开发中用if条件判断语句的情况会更多一些。
6.while循环语句(通过循环语可以反复的执行一段代码多次)
-while循环 语法 : while(条件表达式){
语句…
}
-while语句在执行时,先对条件表达式进行求值判断,如果值为true,则执行循环体,循环体执行完毕以后,继续对条件表达式进行判断,如果为true,再次执行循环体,直到条件表达式值为false,终止while语句。
-如果把条件表达式写死为true的语句,我们称之为死循环。死循环除非浏览器关闭,否则不会停止,可以使用break;终止循环。
-创建一个循环,往往需要三个步骤: 初始化一个变量、在循环中设置一个条件表达式、定义一个更新表达式,每次更新初始化变量。
7.do…while循环语句
-语法do{ 语句…}while(条件表达式)
-do…while循环语句会先执行循环体,循环体执行完毕后,才会对while后的条件表达式进行判断,如果结果true,则会继续执行语句,直到条件表达式为fasle。
while和do…while循环语句类似,区别在于while先判断再循环,do…while先执行,后判断。
do…while保证循环体至少执行一次,而while不行。
8.for循环语句
-语法for(初始化表达式;条件表达式;更新表达式){ 语句…}
-for循环的执行流程,首先执行初始化表达式(初始化表达式只会执行一次),再执行条件表达式,如果条件表达式结果为true,那么执行语句, 最后执行更新表达式,更新表达式执行后,再重复执行第二步(进行条件表达式判断),直到条件表达式结果为false,则for循环终止。
-for循环的三个步骤都可以省略,也可以写在外部。
-如果在for循环中,什么都不写,只写两个分号,此时循环是一个死循环,会一直执行下去。
p38 水仙花数练习 : 关键点在于分别求出 百、十、个位上的值
p39 质数练习 :关键点在于使用一个开关flag ,先默认flag为true。设置一个for外循环i和一个for内循环j,当一个数num如果会被2-num之间的数整除时,flag变为false,再通过flag是否为true来判断这个数是否为质数。这里一个数是否为质数,其实只需要判断它的开根号以前的值是否能够整除它,因此内循环j只需要小于等于Math.sqrt(i);
Math.sqrt();函数
p41 嵌套的for循环练习 通过两个for ,外面那个for控制高,里面那个for ,控制宽 , 来制作一个递增的星星图形。
p42:打印一个99乘法表:
for(var i=1;i<10;i++){
for(var j=1;j<i+1;j++){
document.write(j+""+i+"="+ij+"    ");
}
document.write("
");
}
七.break、continue和console.time()
1.break关键字
-break关键字可以用来退出switch或循环语句 不能单独在if语句中使用break关键字
-break关键字会立即中止离它最近的循环语句。
-可以为循环语句创建一个label,来标识当前的循环。语法:label:循环语句。
-使用break语句时,可以在后面跟着一个label,这样break将会终止指定的循环而不是最近的。
2.continue关键字
-continue关键字可以立即结束当前这次循环
-同样,continue默认只会对它最近的循环起作用
3.console.time(”计时器的名字“)函数,可以开启计时器。它需要一个字符串,字符串将会作为计时器的标识。
4.console.timeEnd(”“)函数,用来停止一个计时器,它也需要一个计时器的名字作为参数。
5.可以通过Math.sqrt()对一个数开方
八、对象的简介
1.五种基本的数据类型
-string number Boolean null undefined这五种基本数据类型,都是单一的值,值和值之间没有任何的联系,这些变量都是独立的,不能成为一个整体。
2.对象
-对象属于一种复合的数据类型,对象中可以保存多个不同数据类型的属性
3.对象的分类
-内建对象:由ES标准中定义的对象,在任何的ES的
-宿主对象:由JS的运行环境提供的对象,目前来讲主要是由浏览器提供的对象。 比如 BOM DOM
4.自建对象
-由开发人员自己创建的对象。
九、对象的基本操作
1.创建对象
-var obj = new object();
使用new关键字调用的函数,是构造函数construction。构造函数是专门用来创建对象的函数。
2.在对象中保存的值叫做属性
-语法:对象.属性名=属性值
3.读取对象中的属性
-语法:对象.属性名
-如果读取对象中没有的属性,不会报错而是会返回一个undefined。
4.修改对象的属性
-语法:对象.属性名=属性值
5.删除对象的属性
-语法 delete 对象.属性名
十、属性名和属性值
1.属性名
-对象的属性名不强制要求遵循标识符的规范,什么名字都可以使用,但是我们使用时还是尽量按照标识符的规范去做。
-如果要使用特殊的属性名,不能采用点的方式来操作,要使用另外一种方式,语法:对象【“属性名”】=属性值,读取时也需要采取这种方式。使用【】这种方式去操作属性更加灵活,因为在中括号中可以直接传递一个变量,这样变量值是多少就会直接读取那个属性。
2.属性值
-JS对象的属性值,可以是任意的数据类型,甚至也可以是一个对象
-in运算符,通过该运算符可以检查一个对象中是否含有指定的属性,如果有,则返回true,如果没有,则返回false 语法 ; “属性名” in 对象。