字面量:都是不可改变的值
变量:可用于保存字面量,变量值可任意变化
05.尚硅谷_JS基础_字面量和变量P5 - 01:53
标识符
标识符可以包含字母、数字、__、$
标识符不能从数字开始。
标识符不能是ES中的关键字或保留字。
驼峰命名法通常用于标识符。helloWorld
07.尚硅谷_JS基础_字符串P7 - 00:26
JS共有六种数据类型
引用数据类型:Object,其他基本数据类型
字符串:
在JS中文字符需要引号(单双引号都可以)
引号不能嵌套,双引号不能放双引号,单引号不能放单引号(如果必须使用,必须使用转义字符\)
表示一些特殊符号时可以使用\进行转义
\"表示“ \‘表示'
07.尚硅谷_JS基础_字符串P7 - 14:42
08.尚硅谷_JS基础_NumberP8 - 00:40
数值类型,浮点整数都是
使用typeof检查一种类型的变量
ptyeof a表示检查a变量的类型
JS表示Number的最大值number.MAX_VALUE
如果使用的Number如果表示的数字超过最大值,则将返回一个Infinity无穷。
使用typeof检查Infinity也会返回Number他也是一个数字
NaN表示特殊数字的特殊数字Not A Number不是数字
Number.MIN_VALUE表示0以上最小值5e-300
var c=0.1 0.2如果使用JS浮点元素,可能会得到不准确的结果,所以不要使用JS对精度要求较高的操作要求
09.尚硅谷_JS基础_布尔值P9 - 00:16
只有两个布尔值:
True和False
10.尚硅谷_JS基础_Null和UndefinedP10 - 00:45
Null只有一种类型值,即Null
Null特别表示空对象的值
Null检查时返回的是Object的
Undefined只有一个类型值,只有一个类型值undefined(未定义)
当声明变量但没有赋值时,那就是undefined
使用typeof检查时也是undefined
11.尚硅谷_JS基础_强制类型转换-StringP11 - 00:03
强制类型转换:
指将一个类型数据强制转换为其它的数据类型
类型转换主要是指将其他数据类型转换为
String Number Boolean
将其他数据类型转换为String
方法1.调用转换数据ToSting()方法(这种方法不会改变原始数据类型)
Null和Undefined没有ToString如果硬调用,会保存
方式2、调用String()函数,并将被转换的数据作为参数传递给函数。
对于Number和Boolean实际调用ToString()方法但对Null直接转换为“null”,将Undefined转换为“Undefined”
12.尚硅谷_JS基础_强制类型转换-NumberP12 - 00:00
将其它的数据类型转换为Number
转换方式一:
使用Number()函数
-字符串转换为数字
1.如果是纯数字的字符串,则直接转换为纯数字的字符串
2.如果字符串中有非数字的内容,则转换为NaN
3. 如果字符串是空船或者是一个全是空格的字符,那么将转换为0
-布尔值转换为数字
1.True转为1,False转为0
-Null转换为0
-Undefined转换数字为NaN
转换方式二:
例如:a=123px123,使用下面方法可以转出123来不转换出px后面的直接忽略掉
parseInt()把一个字符串转换为一个整数
如果对非String使用parseInt()或parseFloat()先转换为String再转换成为number
parseFloat()把一个字符串转换为一个浮点数
13.尚硅谷_JS基础_其他进制的数字P13 - 00:11
其它进制的数据
在js中,如果需要表示16进制的数字,则需要以0x开头
例如a=0x10;那么a的输出值就是16
如果需要表示8进制的数字,则需要以0开头
例如a=070;那么a的输出为56
如果需要表示2进制的数字,则需要以0b开头
例如a=0b10,;那么a的输出为2
a=parseInt(a,10)传递第二个参数,来指定数字的进制
14.尚硅谷_JS基础_转换为BooleanP14 - 00:12
转换为Boolean
方式:使用Boolean()函数
var a=123;
a=Boolean(a)转换为True。
数字转Boolean规则为0和NaN为False其余为True
字符串转Boolean除了空串为false其余为True
Null和Undefined只能转换为False
对象也会转换为True
15.尚硅谷_JS基础_算数运算符P15 - 00:15
任何值和字符串相加都会转换为字符串再做拼接
隐式的类型转换,一个数值number+一个""空字符串,他就会自动调用ToString方法进行转换。
除了+法之外,其它都会把他转成Number形在进行
(隐式转换)可以通过一个值 -0 *1 /1来将其转换为Number
原理和Number()函数(显式转换)一样,使用起来更简单
16.尚硅谷_JS基础_一元运算符P16 - 00:03
单目运算符(一元运算符):
+正号
不会对数字产生任何影响
-负号
对原来的数字进行取反
可以对一个其他的数据使用+,来将进行转换为Number
例如:a=1+(+"2")+3,a就会输出为6
17.尚硅谷_JS基础_自增和自减P17 - 00:28
++通过自增可以使变量在自身的基础上加1
后++和前++,无论是哪个都会使原变量的值自增1,
不同的是a++和++a的值不同
a++的值等于原变量的值(自增前的值)后自增
++a的值等于原变量的值(自增后的值)先自增
--通过自减可以是变量在自身的基础上减1
前--和后--,无论是a--还是--a都会立即使原变量的值自减1
不同的是a--和--a的值不同(与前后++规则相同)
18.尚硅谷_JS基础_自增练习P18 - 00:20
19.尚硅谷_JS基础_逻辑运算符P19 - 00:13
如果对非Boolean值进行取反,那么他就先转换为Boolean再进行取反
20.尚硅谷_JS基础_非布尔值的与或运算P20 - 00:02
对于非布尔值的与或运算,会将其转换为布尔值,然后再运算并且返回原值
与运算,如果两个都为True则返回后面的
如果有False则返回0,如果有两个False则返回靠前的False
21.尚硅谷_JS基础_赋值运算符P21 - 00:11
23.尚硅谷_JS基础_Unicode编码表P23 - 00:12
在字符串中使用转移字符表\u
例如:我们要输出一个1就是\u2040
在网页中就是&#;不过这儿需要的是十进制,需要把十六进制转为十进制
24尚硅谷_JS基础_相等运算符P24 - 00:24
使用==是,他会自动转换类型,转换成什么不一定大部分会转换成为数字
NaN不和任何值相等(包括自身都不等)。Undefined衍生自Null所以他和Null相等
可以通过isNaN()函数来判断是否是NaN返回true和False
===全等
判断两个值是否全等,它和相似相等,但是不会做相应转换
!==全等
判断两个值是否不全等,它和不相等相似,但不会进行转换
25.尚硅谷_JS基础_条件运算符P25 - 00:05
条件运算符也叫三元运算符
语法:
条件表达式?语句1:语句2;
会将其条件表达式转换为布尔值之后再进行运算
26.尚硅谷_JS基础_运算符的优先级P26 - 00:41
,逗号可以同时声明多个变量
可以使用()来改变优先级
27.尚硅谷_JS基础_代码块P27 - 00:24
JS中的代码块,只具有分组的作用,没有其他的用途
代码块内容的内容,在外部是完全可见的
28.尚硅谷_JS基础_if语句(一)P28 - 00:27
29.尚硅谷_JS基础_if语句(二)P29 - 00:06
prompt()可以弹出一个提示框,该提示框会带有一个文本框,用户可以输入内容,该函数需要一个字符串作为阐述,该字符串将会提示框的提示文字
32.尚硅谷_JS基础_if练习二P32 - 12:06
var num1=+prompt("请输入第一个数:")//这样读取出来的是一个数字类型
33.尚硅谷_JS基础_条件分支语句P33 - 00:29
34.尚硅谷_JS基础_switch练习P34 - 07:18
Switch(){
Case:
default:
}
35.尚硅谷_JS基础_while循环P35 - 11:49
while和dowhile
36.尚硅谷_JS基础_while的练习P36 - 12:08
37.尚硅谷_JS基础_for循环P37 - 00:04
38.尚硅谷_JS基础_for循环P38 - 00:10
39.尚硅谷_JS基础_质数练习P39 - 00:11
46.尚硅谷_JS基础_对象的简介P46 - 00:07
基本数据类型都是单一的值,值和值之间没有任何的联系。
在JS中表示一个人的信息
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
对象的分类:
1、内建对象
在ES标准中定义的对象,在任何的ES的实现中都可以使用
2、宿主对象
由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
比如BOM DOM
console.log()、Domcument对象都是浏览器搞好的
3、自定义对象
由开发人员创建的对象
47.尚硅谷_JS基础_对象的基本操作P47 - 00:04
创建对象
var obj=new Object();//使用new关键字调用的函数,是构造函数constructor。构造函数是专门用来创建对象的函数
使用typeof检查一个对象返回object。
//向对象中添加属性
语法:对象.属性名=属性值;
//读取对象中的属性
语法:对象.属性名
如果读取对象中没有的属性,不会报错而会返回undefined
//修改对象的属性值
语法:对象.属性名=新值
//删除对象的属性
语法:delete 对象.属性名
48.尚硅谷_JS基础_属性名和属性值P48 - 00:22
像对象中添加属性
属性名:
对象的属性名不强制要求遵守标识符的规(什么都可以用),但是尽量按照标识符的规范去做
如果确确实实需要使用特殊的属性名,不能采用.的方式来操作
需要使用另一种方式:
语法:对象【“属性名”】=属性值。取值的时候也需要采用对象【“属性名”】
使用【】这种形式去操作属性,更加灵活;
在【】中可以直接传递一个变量,这样变量是多少就会读取那个属性
//属性值
JS对象的属性值,可以是任意的数据类型
//in运算符
通过该运算符可以检查一个对象中是否含有指定的属性
如果有返回true,没有返回的false
语法:“属性名” in 对象
49.尚硅谷_JS基础_基本数据类型和引用数据类型P49 - 00:08
JS中的变量都是保存在栈里面的
基本数据类型的值直接在栈内存中存储
值与值之间是独立存在的,修改一个变量不会影响其他的变量
对象是保存到堆内存中的,没创建一个新的对象,就会在堆内存中开辟出一个新的空间。。而变量中保存的是内存的地址(对象的引用),如果两个变量保存的是同一个对象的引用,当一个通过一个变量修改堆内存中的值之后另外的引用也会改变。
当比较两个基本数据类型的值时,就是直接去比较的值
而比较两个应用数据类型时,它是比较他们的内存地址。
两个对象,即使他们长得一模一样,他们也不是相等的(内存地址不一样)
50.尚硅谷_JS基础_对象字面量P50 - 00:06
使用字面量创建对象
var obj={}相等于var obj=new Object();
使用对象字面量,可以在创建对象时,直接指定对象中的属性
语法:{属性名:属性值,属性名:属性值……}
对象字面量可以加引号也可以不加,建议不加
如果要使用一些特殊的名字,则必须加引号
属性名和属性值是一组一组的名值对结构,
名值对之间使用:冒号连接,多个名值对之间用,逗号隔开,最后一个不要写,逗号
51.尚硅谷_JS基础_函数的简介P51 - 00:21
函数:function
-函数也是一个对象
-函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
-函数中可以保存代码需要时调用
//创建一个函数对象(构造方法)
var fun=new Function()
使用typeof检查一个函数对象时,会返回function
//封装到函数中的代码不会立即执行
//调用函数 语法:函数对象()
//函数对象可以实现常用的对象功能
//我们在实际开发中很少使用构造函数来创建对象
直接使用函数声明来创建一个函数
语法:function 函数名([形参1,形参2,形参N])#带有中括号的代表着这个形参可以写也可以不写
匿名函数创造的方法:var func=function(){}
52.尚硅谷_JS基础_函数的参数P52 - 00:16
多个形参之间使用,逗号隔开,声明形参就相当于在函数内部声明了对应的变量但并不赋值
调用函数时不会检查实参的类型所以要注意是否有可能接收到非法的参数如果有可能则需要对类型的检查。
调用函数时,解析器也不会检查实参的数量,多余的实参不会被赋值(不用)如果实参少于形参的数量,没有被赋值的就为undefined
53.尚硅谷_JS基础_函数的返回值P53 - 00:37
return方法,可以作为结果返回(可以返回任何类型的值)
函数return之后的方法不会执行
54.尚硅谷_JS基础_实参可以是任何值P54 - 00:17
实参是任意的类型,也可以是一个对象
当我们的参数过多时,可以将参数封装到一个对象中,然后通过对象传递
实参可以是一个对象,也能是一个函数。将一个匿名函数作为实参传递给一个函数开发中经常遇到
如果不加括号传递一个函数的话传递的是那个函数处理的返回值在传递给他,如果加括号则传递的是函数这个对象,那么传入进去之后那个函数就可以使用被传入进来函数的方法
55.尚硅谷_JS基础_返回值的类型P55 - 00:19
continue跳过当次循环,但是还是要进行下一次循环
break跳出整个循环
return退出整个函数
返回值可以是任意的数据类型也可以是一个对象还可以是一个函数
可以在函数内部还可以声明函数,也可以作为返回值进行返回。
56.尚硅谷_JS基础_立即执行函数P56 - 00:11
调用一个匿名函数
(function(){alert("我是一个匿名函数~~~");})();
函数定义完就会被立即执行一次。
57.尚硅谷_JS基础_方法P57 - 00:07
对象的属性可以是任何的数据类型,也可以是个函数
函数也可以成为对象的属性,如果一个函数作为一个对象的属性保存,
那么我们成这个函数时这个对象的方法,调用函数就说调用对象的方法(method),但是它只是名称上的区别,没有其它的区别。
//调方法
obj.function()
//调函数
function()
枚举:
要知道对象中的所有属性。则需要使用枚举的方法,一个一个的取出来。使用for in语句
语法:for(var 变量 in 对象){}
还可以使用for(var n in boj){console.log(obj[n])}来输出属性值
58.尚硅谷_JS基础_全局作用域P58 - 00:08
作用域
-作用域指一个变量的作用范围
-在JS中一共有两种作用域:
全局作用域:
-直接编写在script中的JS代码,都作用在全局作用域
-全局作用域在页面打开的时候创建,页面关闭的时候销毁
-全局作用域中有一个全局对象window,我们可以直接使用。他代表的是一个浏览器的窗口。
-全局作用域中的变量都会作为window对象的属性保存
-全局作用域中的函数都会作为window对象的方法保存
1、变量的声明提前:
-使用var关键字声明的变量,会在所有的代码执行之前被声明,但是如果声明变量时不使用var关键字,则变量不会被声明提前。
2、函数的声明提前:
-使用函数声明形式创建的函数function函数(){}。它会在所有的代码执行之前被创建。所以我们可以在函数声明前进行调用。
-使用函数表达式创建的函数var fun=function(){}。不会被提前创建。
-全局作用域中的变量都是全局变量,在我们的页面的任意部分都可以访问到
59.尚硅谷_JS基础_函数作用域P59 - 00:04
函数作用域:
-调用函数时创建函数作用域,函数执行完毕后,函数作用域销毁
-每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的
-在函数作用域中可以访问到全局作用域的变量,但是在全局作用域中无法访问到函数作用域中的变量
-当在函数作用域中操作一个变量时,它会现在自身作用域中寻找,如果有就直接使用,如果没有则向上一级作用域中寻找(并不是指的是全局作用域)可以是上一级的函数中的变量。最后才会找到全局作用域中。如果全局作用域中都没有那就报错没有定义
-在函数作用域中也有提前声明。类似于全局作用域的提前声明。
-在函数中如果不写var的话那就会成为全局变量(相当于window.变量名=变量值)
-定义形参就相当于在函数作用域中声明了变量。
60.尚硅谷_JS基础_debugP60 - 00:25
使用浏览器的Sources可以悬停一步一步的执行,可以验证var是否已经提前声明,添加进watch中就可以看到。
61.尚硅谷_JS基础_thisP61 - 00:03
解析器(浏览器)在调用函数每次都会向函数内部传递进一个隐含的参数。这个隐含的参数就是this。this指向的是一个对象。
这个对象我们称为函数执行的上下文对象。
根据函数的调用方式不同,this会指向不同的方向
1、以函数的形式调用时,this永远都是window。
2、以方法的形式调用时,this就是方法调用的对象
62.尚硅谷_JS基础_this补充P62 - 00:14
this可以根据调用者的不同来决定被调用的东西是什么,相当于java里面的父类
63.尚硅谷_JS基础_使用工厂方法创建对象P63 - 03:22
64.尚硅谷_JS基础_构造函数P64 - 17:57
1.立刻创建一个新的对象
2.将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
3.逐行执行函数中的代码
4.将新建的对象作为返回值返回
使用同一个构造函数创建的对象,我们成为一类对象,也构造了一个类。创建的构造对象成为一个类的实例
65.尚硅谷_JS基础_.构造函数修改P65 - 00:01
直接在作用域中进行定义,让所有的构造方法都去调用同一个函数
66.尚硅谷_JS基础_原型对象P66 - 00:54
函数定义在全局作用域,污染全局作用域的命名空间,而且定义在全局作用域中也很不安全。
prototype圆形
我们所创建的每一个函数,解析器都会向函数中添加一个属性prototype
-这个属性对应着一个对象,这个对象就是我们所谓的原型对象
如果函数作为普通函数调用时prototype没有任何作用
当以构造对象进行调用时,它所创建的对象中都会有一个隐藏的属性指向该构造函数的原型对象,我们可以通过__proto__来访问该属性
原型对象就相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象,没我可以将对象中共有的内容,统一设置到原型对象中。
当我们访问对象的一个属性或方法时,它先在自身中寻找,如果没有则会去原型对象中寻找,如果找到则直接使用
-以后创建构造函数时,可以将这些对象共有的属性和方法,统一添加到构造函数的原型对象中。这样不用分别为每个对象添加,也不会影响到全局作用域,就可以使每个对象都具有这些属性和方法
67.尚硅谷_JS基础_原型对象P67 - 00:03
使用in检查对象中是否含有某个属性时,如果对象中没有但是原型中有,也会返回true
可以使用对象的hasOwnProperty()检查自身中是否含有该属性
原型对象也还有原型对象
-当我们在使用一个对象的属性或方法时,会先在自身中寻找,如果没有则去原型对象中寻找,如果原型对象中与他使用,再没有去原型的原型去寻找。
Object对象中的原型没有原型(最多两层),在Object中依然没有找到,则返回undefined。(原型链)
68.尚硅谷_JS基础_toString()P68 - 00:10
当直接在页面中打印一个对象时,事实上是输出对象的ToString()方法的返回值(打印对象=打印返回值)
如果我们希望对象不输出【boject OBject】可以为对象添加一个ToString()方法
69.尚硅谷_JS基础_垃圾回收P69 - 00:04
垃圾回收
对对象进行一系列操作之后,最后将对象的值改为object=null
当一个对象没有任何的变量或属性对它进行引用,此时我们永远无法操作该对象。
此时这种对象就是一个垃圾,导致程序变慢。在JS中拥有自动的垃圾回收机制。我们不需要也不能进行垃圾回收。如果需要回收就使用boject=null,让栈内存中的内存值设为null
70.尚硅谷_JS基础_数组简介P70 - 00:16
数组也是一个对象(Array)
和普通对象功能类似,也是用来储存一个值
不同的是普通对象是使用字符串作为属性名的,
-而数组时使用数字来作为索引操作元素
-索引:
从0开始的整数就是索引
数组的存储属性比普通对象好,在开发总我们经常使用数组来存储一些数据
使用typeof检查数组是返回object
语法:数组【索引】=值
arr[0]=10
读取数组中的元素
语法:数组【索引】
像数组最后一个数组添加元素
语法:数组【数组.lenght】=值
71.尚硅谷_JS基础_数组字面量P71 - 00:49
可以直接使用var arr=[];创建数据
也可以使用构造函数的方法添加元素,将要添加元素构造函数的参数传递
var arr=new Array(10,20,30);
数组中的元素可以是任意的数据类型(包括对象)
arr=["hello",1,true,null,undefined]
72.尚硅谷_JS基础_数组的四个方法P72 - 00:15
push()该方法可以想数组的末尾添加一个或多个元素,并返回数组的新的长度。这样这些元素将自动添加到数组的末尾
pop()该方法可以删除数组的最后一个元素,并将删除的元素作为返回值返回
arr.unshift()往前面添加,想前面添加元素之后,其它的元素的下标都会调整。
arr.shift()删除数组的第一个元素并作返回值进行返回
73.尚硅谷_JS基础_数组的遍历P73 - 01:26
使用for循环来进行数组的遍历
arr.lenght
74.尚硅谷_JS基础_数组练习P74 - 01:07
75.尚硅谷_JS基础_forEachP75 - 00:07
了解一个forEach方法进行遍历数组
就是除了for循环的数组之外的遍历数组
arr.forEach(function(){})
forEach需要一个函数作为参数
-这种函数,由我们创建但是不由我们调用,我们成为回调函数
-数组中有几个数组就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,我们可以来定义形参,来读取这些内容
-浏览器会在回调函数中传递三个函数。
-第一个参数当前正在遍历的元素
-第二个参数当前正在遍历元素的索引
-第三个参数当前正在遍历的整个对象
支持IE8及以上的
76.尚硅谷_JS基础_slice和spliceP76 - 00:05
slice()参数start,end开始和结束位置。该方法不会影响原数组。
截取位的索引包含开始不包含结束。前闭后开区间
-第二个参数可以省略不写。那就是全部截取
-索引也可以传递负值,如果传递一个负值那就是从后往前取
splice()可以用于用于删除数组
splice()会影响到原数组,会将制定元素从原数组中删除,并将删除的元素作为返回值返回。参数start,num。删除的从第几个开始以及删除的数量,第三个参数以后:可以传递新的元素,这些元素就会自动插入到开始位置索引前面
77.尚硅谷_JS基础_数组去重练习P77 - 00:06
78.尚硅谷_JS基础_数组的剩余方法P78 - 00:05
concat()可以连接两个或多个数组,并将新的数组范围。该方法不会对原数组产生影响
join()该方法可以将数组转换为一个字符串
-该方法不会对原数组产生影响,二十将转换后的字符串作为结果返回
-在join()中可以指定一个字符串作为参数,这个字符串将成为数组中元素的连接符,如果不使用那就默认逗号,想要为空的话就改为一个空字符串
reverse()该方法用来翻转数组,会直接修改原数组
sort()对原数组进行排序,会影响原数组,按照Unicode编码进行排序。即使按照纯数字的数组排序,也会按照Unicode编码来排序,所以对数字排序的时候可能得到错误的结果
79.尚硅谷_JS基础_call和applyP79 - 00:01
函数对象的方法call()和apply()
-这两个方法都是函数对象的方法,需要通过函数对象来调用
-当我们对函数进行调用call()和apply()和直接加()就可以使用
-使用call()和apply()可以将一个对象指定为一个参数
此时这个对象将会成为函数执行的this
-call()方法可以将实参在对象之后一次传递
-apply()方法需要将实参封装到一个数组中统一传递
-this的情况:
1、以函数形式调用时,this永远都是window
2、以方法的形式调用时,this是调用方法的对象
3、以构造函数的形式调用时,this是新创建的对象
4、使用call和apply调用时,this是指定的那个对象
80.尚硅谷_JS基础_argumentsP80 - 00:23
在调用函数时,浏览器每次都会传递进两个隐含的参数。
1、第一个是函数的上下文对象this。
2、第二个是封装实参的arguments
-arguments是一个类数组对象(但是不是一个数组),它也可以通过参数索引来操作数据,也可以获取长度。
-在调用函数时,我们所传递的实参都会在arguments中保存
-即使不定义形参,也可以通过arguments的下标来使用实参。
-它里面还有一个属性叫做callee,对应的一个函数对象,就是我们当前正在执行的函数对象
81.尚硅谷_JS基础_Date对象P81 - 00:12
Date对象
-在JS中使用Date对象来表示一个时间
如果直接使用构造函数去创建一个Date对象,则会封装为当前代码的执行时间
创建指定的一个时间对象:格式:月份/日/年 时:分:秒
getDay()返回当前日期的周几0表示周日,1周一
getMonth()返回当前日期的月份
0表示1月,1表示2月,2表示3月
getTime()返回当前日期对象的时间戳
-时间戳,指的是从格林威治的标准时间到现在的毫秒数的及时(计算机底层在保存时间使用时间戳保存)
获取我们当前的时间戳Date.Now();
82.尚硅谷_JS基础_MathP82 - 00:05
Math
-Math和其它对象不同,它不算一个构造函数。
术语工具类不用创建对象,它里面封装数学计算的方法
Math.ceil()方法小数点只要有值都自动进1。向上取整
Math.floor()方法小数点只要有值都自动抹去。向下取整
96.尚硅谷_JS基础_DOM查询P96 - 00:37
获取某个元素下的子元素,需要使用该元素名在寻找子元素名。语法:元素名.getElementById()
childnodes获取包括文本节点在内的所有节点。
根据DOM的换行也会当成文本节点,但是在IE8一下的浏览器中,不会将空白文本当成子节点,
children属性可以获取当前元素的子元素(不会有空格)比childnodes好很多
firstChild第一个子节点
firstElementChild第一个子元素(不支持IE8以下)
97.尚硅谷_JS基础_DOM查询P97 - 00:40
定义一个函数,专门用来指定元素绑定单击响应函数
参数:
idStr要绑定单机相应函数的对象的id属性值
fun事件回调函数,当点击元素时,使用回调函数
父节点:parentNode
innerHTML获取到元素内部中的html代码。而innerText则获取到元素内部中的文字,去除了标签部分
.previousSibling前一个兄弟节点(包括空格)
.previousElementSibling前一个兄弟元素
文本框的value属性值就是文本框中填写的内容
文本中的nodeValue就是他文本的值。
98.尚硅谷_JS基础_全选练习(一)P98 - 00:17
99.尚硅谷_JS基础_全选练习(二)P99 - 12:15
在时间的响应函数中,响应函数是给谁绑定的this就是
100.尚硅谷_JS基础_全选练习(三)P100 - 02:24
101.尚硅谷_JS基础_dom查询的剩余方法P101 - 00:16
Dom查询其它方法
获取body标签getElementByTagName("body")[0]
在document中有一个属性body,它保存的是body的引用
documentElement保存的是html的根标签
document.all代表页面中的所有元素
document.querySelector()这个方法很强大,需要一个选择器的字符串作为参数,可以根据一个CSS选择器来查询一个元素节点对象。
使用该方法会返回唯一的一个元素,如果满足条件的元素有多个那么它只会返回第一个。
document.querySelectorAll()这个方法就可以查询到所有的classname的方法。不同的是符合条件的元素封装到一个数组中进行返回。即使只有一个也返回数组
102.尚硅谷_JS基础_dom增删改P102 - 00:10
createElement()可以创建一个元素节点对象,需要一个标签名作为参数,将会根据标签名创建元素节点对象,并将创建好的对象作为返回值
createTextNode()创建文本节点,需要一个文本内容作为参数,会根据该内容创建文本节点,将新的节点返回
appendChild()向一个父节点添加一个新的子节点。
用法:父节点.appendChild(子节点)
103.尚硅谷_JS基础_添加删除记录-删除P103 - 00:11
104.尚硅谷_JS基础_添加删除记录-添加P104 - 00:08
104.尚硅谷_JS基础_添加删除记录-添加P104 - 00:42
105.尚硅谷_JS基础_添加删除记录-修改P105 - 00:26
108.尚硅谷_JS基础_获取元素的样式P108 - 00:37
document.style.样式获取的是内联样式并不是样式表中的样式
读取元素当前样式:
语法:元素.currentStyle.样式名
它可以用来读取当前正在显示的样式(虽然好用但是只有IE支持)
在其他浏览器中使用getComputedStyle()这个方法来获取当前的样式,这个方法是window的方法,可以直接使用。两个参数:第一个:要获取样式的元素,第二个:传递一个伪元素,一般都传null。该方法返回一个对象,对象中封装了当前元素的对应样式
该方法会返回一个对象,对象封装了当前元素对应的样式(该方法不支持IE8以下浏览器)
要做到都兼容自己写一个函数:
参数:obj获取样式的元素。name要获取的样式名。
通过currentStyle和getComputedStyle()读取到的样式都是只读的,不能修改,如果要修改必须通过style属性
109.尚硅谷_JS基础_getStyle()方法P109 - 00:04
找对象的属性而不是变量,找不到属性为undefined,所以他转换为false就是走else中的。但是如果找不到变量那就报错了
110.尚硅谷_JS基础_其他样式相关的属性P110 - 00:35
标签: 圆形连接器p28