欢迎光临散文网 会员登陆 & 注册

黑马程序员前端JavaScript入门到精通全套视频教程,javascript核

2023-08-31 20:00 作者:透明的空气i  | 我要投稿

前端第35期:DAY 1 -P1-P19

学习笔记:

模板字符串

1.``(反引号)

2.英文输入1旁边的那个键

3.拼接时用${}包裹住变量:${变量名}

eg:document.write(`你好,我是${name},来自${address},${age}岁`)

练习:

布尔型、null和undefined

通过typeof关键字检测数据类型

两种语法形式:(常用第一种)

练习:

隐式转换

eg:


综合案例:(***特别注意反引号)

常见错误:

let或者const不允许多次声明同一个变量

const声明常量,常量不允许被重新赋值

prompt获取到的是字符型,会出现字符串相加的情况

prompt如果要相加,记得要转为数字型,可以利用+最简单:(

学习心得:感觉都挺熟悉,入手挺快。


前端第35期:DAY 2 -P20-P34

学习笔记:

算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余(求模)等

注:在计算失败时,显示的结果是 NaN

只有变量能够使用自增和自减运算符


*** 先&&后||

逻辑运算符优先级: !> && > ||

if 多分支语句

使用场景: 适合于有多个条件的时候


三元运算符(三元表达式)

条件 ? 表达式1 : 表达式2


switch语句

switch case语句一般用于等值判断, if适合于区间判断

switch case一般需要配合break关键字使用


断点调试

作用:帮助更好的理解代码运行,更快找到bug

浏览器打开调试界面

1. 按F12打开开发者工具

2. 点到源代码一栏 ( sources )

3. 选择代码文件

断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来

(没操作明白)明天继续看一遍


break  中止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)  

continue 中止本次循环,一般用于排除或者跳过某一个选项的时候


while(true) 来构造“无限”循环,需要使用break退出循环。(常用)

for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。


综合案例

作业



综合案例变形

有点奇怪不太懂(挠头)↓

学习心得:有些地方不是太明白,明天继续,仔细搞清楚弄明白。



前端第35期:DAY 3 -P35-P49

学习笔记:

注:for 循环和 while 一样,如果不合理设置增量和终止条件,便会产生死循环。


循环嵌套

注:外层循环循环一次,里层循环循环全部


多个数据可以用数组存起来,然后放到一个变量中,方便管理,数组单元之间使用英文逗号分隔。

操作数组

1. push 动态向数组的尾部添加一个单元

2. unshit 动态向数组头部添加一个单元

3. pop 删除最后一个单元

4. shift 删除第一个单元

5. splice 动态删除任意单元

作业:


学习心得:今天的有些以前没接触过,有点新奇,学的有点慢,明天量稍微减一点,学扎实一点,加油!


前端第35期:DAY 4 -P50-P53

学习笔记:

函数

声明(定义)一个完整函数包括关键字、函数名、形式参数、函数体、返回值5个部分

调用

声明(定义)的函数必须调用才会真正被执行,使用 ()调用函数

参数

通过向函数传递参数,可以让函数更加灵活多变,参数可以理解成是一个变量。

注: 多个数据用逗号隔开

arr (传上去是数组)

记得给个空值不然报错


形参和实参

形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数)

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数)

形参可以理解为是在这个函数内声明的变量(比如 num1 = 10)实参可以理解为是给这个变量赋值

开发中尽量保持形参和实参个数一致


学习心得:封装后调用方便了好多,不用一直复制真好。以前的人怎么想到的真牛


前端第35期:DAY 5 -P53-P55

学习笔记:

返回值

函数的本质是封装(包裹),函数体内的逻辑执行完毕后,想获得函数内部逻辑的执行结果,要通过 return 关键字,将内部执行结果传递到函数外部,这个被传递到外部的结果就是返回值。


注:函数内部只能出现1 次 return,并且 return 下一行代码不会再被执行,所以return 后面的数据不要换行写

return会立即结束当前函数

函数可以没有return,这种情况默认返回值为 undefined

学习心得:学习了return的使用情况,及其一些注意事项


前端第35期:DAY 6 -P56-P58

学习笔记:

两个相同的函数后面的会覆盖前面的函数

实参的个数和形参的个数可以不一致

如果形参过多 会自动填上undefined

如果实参过多 那么多余的实参会被忽略 (函数内部有一个arguments,里面装着所有的实参)

作用域

作用域的不同,变量可以分为全局变量和局部变量

全局作用域

作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件。处于全局作用域内的变量,称为全局变量

局部作用域

作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。处于局部作用域内的变量称为局部变量


变量有一个坑, 特殊情况

如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐

但是有一种情况,函数内部的形参可以看做是局部变量。

变量的访问原则:在能够访问到的情况下 先局部, 局部没有在找全局(就近原则)

学习心得:知道了形参和实参的个数可以不一致,晓得了变量有个坑,以及函数内部的形参可以看做是局部变量。变量的访问原则


前端第35期:DAY 7 -P59-P67

学习笔记:

函数表达式

将匿名函数赋值给一个变量,并且通过变量名称进行调用

立即执行函数

注意: 多个立即执行函数要用 ; 隔开,要不然会报错

无需调用,立即执行,其实本质已经调用了


逻辑运算符里的短路

短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行


转换为Boolean型

‘’、0、undefined、null、false、NaN 转换为布尔值后都是false, 其余则为 true



隐式转换:

1. 有字符串的加法 “” + 1 ,结果是 “1”

2. 减法 - (像大多数数学运算一样)只能用于数字,它会使空字符串 "" 转换为 0

3. null 经过数字转换之后会变为 0

4. undefined 经过数字转换之后会变为 NaN


对象

对象是一种数据类型。无序的数据的集合

特点:

无序的数据的集合;可以详细的描述描述某个事物

对象有属性和方法组成

属性

数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的

多个属性之间使用英文 , 分隔

属性名和值,它们之间使用英文 : 分隔

属性名可以使用 ""或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等


感觉和C语言中的结构体好像


声明对象

1.对象查语法:

对象名.属性

(查的另外一种写法)

对象[‘属性’] 方式, 单引号和双引号都可以


2.对象改语法:

对象名.属性 = 新值

3.对象增语法:

对象名.新属性名 = 新值

4.对象删语法:(了解)

delete 对象名.属性

学习心得:知道了立即执行函数,短路,还有那些情况转布尔型后是false,还有属性一些语法



前端第35期:DAY 8 -P68-P69

学习笔记:

方法:

在内部是方法,在外部是函数

1. 方法是由方法名和函数两部分构成,它们之间使用 : 分隔

2. 多个属性之间使用英文 , 分隔

3. 方法是依附在对象中的函数

4. 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

调用方法:

(错误的):

(正确的)

遍历对象

用for in遍历对象

一般不用这种方式遍历数组,主要是用来遍历对象

for in语法中的 k 是一个变量, 在循环的过程中依次代表对象的属性名

由于 k 是变量, 所以必须使用 [ ] 语法解析

注意: k 是获得对象的属性名, 对象名[k] 是获得 属性值

学习心得:晓得了调用方法不用再写console log了,直接写对象名.方法名。遍历对象要用for in,打印时,k是属性名,并且是‘属性名’,所以需要 对象名【属性名】 eg:console log(obj[k]),着重记忆


前端第35期:DAY 9 -P70-P71

学习笔记:

遍历数组对象

用的传统的for


内置对象:

Math对象包含的方法有:

random:生成0-1之间的随机数(包含0不包括1)

0-10之间的随机数

eg: Math.floor(Math.random() * (10 + 1))

ceil:向上取整

floor:向下取整

round: 四舍五入

max:找最大数

min:找最小数

pow:幂运算

abs:绝对值

sqrt: 平方根

声明一个空的对象(没有任何属性,也没有任何方法),动态追加属性

学习心得:遍历数组对 象用传统的for,遍历数组不推荐用for in


前端第35期:DAY 10 -P72-P77

学习笔记:

random:生成0-1之间的随机数(包含0不包括1)【0,1)

eg: 0-10之间的随机整数[0,11)

Math.floor(Math.random() * (10 + 1))

随机抽数组中的一个元素

N-M之间的随机数

例子:抽取名字,删除抽中的名字

回忆splice, splice(起始位置下标,删除几个元素)


例子:猜数字

用while循环来不断地循环,提示输入数字


限制猜的次数,用for来实现

基本数据类型和引用数据类型

感觉和指针有点像

学习心得:学会了怎么做点名,明天开web APIs,加油



前端第35期:DAY 12 -P78-P80

学习笔记:

变量声明有三个 var let 和 const

const 优先,尽量使用const

有了变量先给const,如果发现它后面是要被修改的,再改为let

const 声明的值不能更改,而且const声明变量的时候需要里面进行初始化

const声明的变量,里面存的不是值,是地址

建议数组和对象使用 const 来声明


DOM (文档对象模型)、BOM(浏览器对象模型)

DOM作用:

操作网页内容,可以开发网页内容特效和实现用户交互


DOM树:

将 HTML 文档以树状结构直观的表现出来,我们称之为文档树或 DOM树

作用:文档树直观的体现了标签与标签之间的关系

DOM对象:

浏览器根据html标签生成的 JS对象(DOM对象)

DOM的核心就是把内容当对象来处理


document :

是 DOM 里提供的一个对象

网页所有内容都在document里面


学习心得:之前声明用的var,前几天学用let,现在知道了用const最好(变量不再变的情况下),开始学DOM了,近段时间好忙,昨天都没打卡,改天再补上吧


前端第35期:DAY 13 -P81

学习笔记:

获取DOM元素

根据css选择器来获取DOM元素(重点)

选择匹配的第一个元素

document.querySelector('css选择器')

参数:包含一个或多个有效的css选择器 字符串

返回值:css选择器匹配的第一个元素,一个HTMLElement对象。如果没有匹配到,则返回null。

nav一定要加‘#’

获取ul 里面的一个小li


选择匹配的多个元素

document.querySelectorALL('css选择器')

参数:包含一个或多个有效的css选择器 字符串

返回值:css选择器匹配的NodeList 对象集合

这个得到的是一个伪数组

有长度有索引的数组,但是没有pop() push() 等数组方法

想要得到里面的每一个对象,则需要遍历(for)的方式获得

注:就算只有一个元素,通过querySelectAll()获取过来的也是一个伪数组,里面只有一个元素


注意:小括号里面的参数写css选择器,必须是字符串,也就是必须加引号

其他获取DOM元素方法


学习心得:学了根据css选择器来获取DOM元素,学会了选择第一个和多个元素的方式querySelector 和querySelectorAll




前端第35期:DAY 14 -P82

学习笔记:

DOM对象都是根据标签生成的,所以操作标签,本质上就是操作DOM对象。

通过修改 DOM 的文本内容,动态改变网页的内容

修改DOM元素:


元素.innerText属性只识别文本,不能解析标签

将文本内容添加/更新到任意标签位置


元素.innerHTML属性 能识别文本,能够解析标签

将文本内容添加/更新到任意标签位置

会解析标签,多标签建议使用模板字符


一般多数情况下选择用元素.innerHTML


学习心得:知道了怎么操作修改DOM元素,用元素.innerHTML最好


前端第35期:DAY 15 -P83-P84

学习笔记:

通过 JS 设置/修改标签元素属性,比如通过 src更换 图片

通过JS来设置/修改标签元素属性

对象.属性=值

注:先获取再修改

直接能过属性名修改,最简洁的语法


通过修改行内样式 style 属性,实现对样式的动态修改

对象.style.样式属性=值

注:修改时,值不要忘了单位

任何标签都有 style 属性,通过 style 属性可以动态更改网页标签的样式,如要遇到 css 属性中包含字符 - 时,要将 - 去掉并将其后面的字母改成大写

或者说 多组单词的采取小驼峰命名法

例如:background-color 采取backgroundColor

因为body是唯一的标签,可直接写document.body.style


学习心得:

学会了通过JS来修改标签元素属性和通过style来操作css



前端第35期:DAY 17 -P85-P86

学习笔记:

用className来修改样式

由于class是关键字,所以使用className去替代

注意:className是使用新值换旧值,会覆盖掉之前引用的类名

如果两个都想要,那就都写上,例如上图,既想要nav又想要box


使用className可以同时修改多个样式,简洁许多

注意:直接使用className赋值会覆盖以前的类名

为了解决className容易覆盖以前的类名,我们可以通过classList方式追加和删除类名(常用)

在原先的类名上追加的

不用担心被覆盖掉了


删除和切换


经常还是用classList


学习心得:学了用className和classList来修改样式,通常还是用classList修改方便一点


前端第35期:DAY 18 -P87

学习笔记:

点击刷新,随机轮播图,确保图片和背景颜色以及下面的小圆点都会随之刷新

获取N~M的随机数

用parseInt来取整,例如2.1取整就是2, 2.9取整也是2,向下取整 后面就是获得随机数了

随机sliderData数组里的一个对象打印到控制台上

然后就是将相应的数据渲染到标签里面

获取图片路径

随后修改图片路径

对象.url修改 就是把sliderData数组里抽取的对象的url赋给前面


学习心得:前面学的有点忘了啊,改天需要抽个时间回顾一下,时间真不够用啊





前端第35期:DAY 19 -P88


学习笔记:

注意:此处需要加点,和以前css的写法相同

修改图片下方的文本,使其跟随图片改变而改变,首先先获取文本p

然后再用sliderData数组里的title和图片一样的随机赋给p.innerHTML来修改

背景颜色的修改和文本的修改大差不差,都是先获取,然后将sliderData数组里的color和图片一样的随机赋给背景颜色来修改

让小圆点随着刷新和图片一样改变

一样也是先获取,之后用classList.add来为li添加active这个类,来让小圆点高亮显示

classList最为重要


学习心得:小圆点这块有点不太通,不过知道了classList的添加类,是会了



前端第35期:DAY 20 -P89

学习笔记:

获取表单的值,用 表单.value

注:innerHTML得不到表单内容

设置表单的值,将其设置成password的,点一下就是text,点一下就是password


操作表单元素属性

添加就有效果,移出就没,一律使用布尔值表示

disabled,checked,selected


checked多选框用

checked只能接受布尔值,所以会有隐式转换,会选中,但不提倡

这个checked有的话默认为true,没有为false

ipt.checked=true是用js的方式勾选上多选框


disabled是禁用 为true时,按钮就不能点了

属性和值相同,可以省略,只写一个


学习心得:知道了disabled和checked的使用,还有属性和值两个相同可以省略写




前端第35期:DAY 11 -P90 (补卡)

学习笔记:

标准属性:标签天生自带的属性 比如class id title等, 可以直接使用点语法操作比如:disabled、checked、selected


自定义属性:html5中推出的

在标签上一律以data-开头

在DOM对象上一律以dataset对象方式获取

dataset获取全部,以集合的形式

如果只需要其中一个,那么后面 dataset.属性 就行


学习心得:知道了怎么写自定义属性,data-XXX XXX自己起。dataset获取全部,需要一个则后面加上 .属性



前端第35期:DAY 16 -P91 (补卡)

学习笔记:

定时器--间歇函数

使用定时器函数重复执行代码


开启定时器

setInterval(函数,间隔时间)

每每隔一段时间调用这个函数

间隔时间单位是毫秒(注:1秒=1000毫秒


第一种写法

第二种写法:(注:函数直接写函数名,不要加小括号

加小括号的(也能使用,但极为少见,不建议使用


定时器返回的是一个id数字


关闭定时器

let 变量名=setInterval(函数,间隔时间)

clearInterval(变量名)

先let 变量获得定时器返回的id数字,然后用clearInterval()关闭定时器

eg:


学习心得:

学会了使用定时器,知道怎么开启关闭,以及一些注意事项



前端第35期:DAY 21 -P92-P93

学习笔记:


button是个特殊的双标签,用value不能获得表单的值,得用innerHTML才行


选择器选的时候要加点,remove不用加点

无缝衔接位置一定要放在i++后面




学习心得:设置小圆点的时候要注意移除上一个的高亮的类名,然后为现在当前的小圆点添加类。button用innerHTML来获取值。轮播图自动从头播放的if设置要紧挨着放在i++后面

黑马程序员前端JavaScript入门到精通全套视频教程,javascript核的评论 (共 条)

分享到微博请遵守国家法律