学习笔记2(自用)

2023-11-07

一、emmet语法

1、简介

Emmet语法的前身是Zen coding,它使用缩写,来提高html/css的编写速度, Vscode内部已经集成该语法。

快速生成HTML结构语法

快速生成CSS样式语法

2、快速生成HTML结构语法

  • 生成标签 直接输入标签名 按tab键即可 比如 div 然后tab 键, 就可以生成 <div></div>

  • 如果想要生成多个相同标签 加上 * 就可以了 比如 div*3 就可以快速生成3个div

  • 如果有父子级关系的标签,可以用 > 比如 ul > li就可以了

  • 如果有兄弟关系的标签,用 + 就可以了 比如 div+p

  • 如果生成带有类名或者id名字的, 直接写 .demo 或者 #two tab 键就可以了

  • 如果生成的div 类名是有顺序的, 可以用 自增符号 $

  • 如果想要在生成的标签内部写内容可以用 { } 表示

3、快速生成CSS样式语法

CSS 基本采取简写形式即可

比如 w200 按tab 可以 生成 width: 200px;

比如 lh26px 按tab 可以生成 line-height: 26px;

4、快速格式化代码

Vscode 快速格式化代码: shift+alt+f

也可以设置 当我们 保存页面的时候自动格式化代码:

1)文件 ------.>【首选项】---------->【设置】;

2)搜索emmet.include;

3)在settings.json下的【工作区设置】中添加以下语句:

"editor.formatOnType": true,

"editor.formatOnSave": true

二、css的复合选择器

1、什么是复合选择器?

在 CSS 中,可以根据选择器的类型把选择器分为基础选择器复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。 ​ 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确、更高效的选择目标元素(标签) ​ 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等

2、后代选择器 (重要)

定义:

后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

语法:

上述语法表示选择元素 1 里面的所有元素 2 (后代元素)。

语法说明

  • 元素1 和 元素2 中间用空格隔开

  • 元素1 是父级,元素2 是子级,最终选择的是元素2

  • 元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可

  • 元素1 和 元素2 可以是任意基础选择器

例子:

3、子选择器 (重要)

定义:

子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。

(简单理解就是选亲儿子元素)

语法:

上述语法表示选择元素1 里面的所有直接后代(子元素) 元素2。

语法说明

  • 元素1 和 元素2 中间用 大于号 隔开

  • 元素1 是父级,元素2 是子级,最终选择的是元素2

  • 元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器

4、并集选择器 (重要)

定义:

并集选择器可以选择多组标签, 同时为他们定义相同的样式,通常用于集体声明。并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。

语法:

上述语法表示选择元素1 和 元素2。

语法说明

  • 元素1 和 元素2 中间用逗号隔开

  • 逗号可以理解为和的意思

  • 并集选择器通常用于集体声明

5、伪类选择器

定义:

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

语法:

伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

6、链接伪类选择器

定义:

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

语法:

伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

a:link 没有点击过的(访问过的)链接 ​ a:visited 点击过的(访问过的)链接 ​ a:hover 鼠标经过的那个链接 ​ a:active 鼠标正在按下还没有弹起鼠标的那个链接

链接伪类选择器注意事项

为了确保生效,请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active。

记忆法:love hate 或者 lv 包包 hao 。

因为 a 链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。

7、:focus 伪类选择器

定义:

:focus 伪类选择器用于选取获得焦点的表单元素。

焦点就是光标,一般情况 <input> 类表单元素才能获取

三、css的显示模式

1、什么是元素的显示模式

定义:

元素显示模式就是元素(标签)以什么方式进行显示,比如<div>自己占一行,比如一行可以放多个<span>。

作用:

网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。

2、元素显示模式的分类

2.1、块元素

常见的块元素

<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>

<div> 标签是最典型的块元素。

块级元素的特点

  • 比较霸道,自己独占一行。

  • 高度,宽度、外边距以及内边距都可以控制。

  • 宽度默认是容器(父级宽度)的100%。

  • 是一个容器及盒子,里面可以放行内或者块级元素。

注意:

- 文字类的元素内不能使用块级元素
​
- `<p>`标签主要用于存放文字,因此`<p>`里面不能放块元素,特别不能放`<div>`
​
-  同理,`<h1>`—`<h6>`等都是文字类块级标签,里面也不能放其他块级元素

2.2、行内元素

常见的行内元素:

<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>

<span> 标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

行内元素的特点:

  • 相邻行内元素在一行上,一行可以显示多个。

  • 高、宽直接设置是无效的。

  • 默认宽度就是它本身内容的宽度。

  • 行内元素只能容纳文本或其他行内元素。

注意: 链接里面不能再放链接 特殊情况链接 <a> 里面可以放块级元素,但是给 <a> 转换一下块级模式最安全

2.3、行内块元素

常见的行内块标签

<img />、<input />、<td>

它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。

行内块元素的特点

  • 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。

  • 一行可以显示多个(行内元素特点)。

  • 默认宽度就是它本身内容的宽度(行内元素特点)。

  • 高度,行高、外边距以及内边距都可以控制(块级元素特点)。

2.4、元素显示模式总结

学习元素显示模式的主要目的就是分清它们各自的特点,当我们网页布局的时候,在合适的地方用合适的标签元素。

3、元素显示模式的转换

简单理解:

一个模式的元素需要另外一种模式的特性 ​ 比如想要增加链接 <a> 的触发范围。

转换方式

  • 转换为块元素:display:block;

  • 转换为行内元素:display:inline;

  • 转换为行内块:display: inline-block;

4、单行文字垂直居中的代码

解决方案:

让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

简单理解:

行高的上空隙和下空隙把文字挤到中间了,

如果行高小于盒子高度,文字会偏上,

如果行高大于盒子高度,则文字偏下。

四、css的背景

通过 CSS 背景属性,可以给页面元素添加背景样式。 背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。

1、背景颜色

样式名称

background-color 定义元素的背景颜色

使用方式

其他说明

元素背景颜色默认值是 transparent(透明)

2、背景图片

样式名称

background-image 定义元素的背景图片

其他说明

实际开发常见于 logo 或者一些装饰性的小图片或者是超大的背景图片, 优点是非常便于控制位置. (精灵图也是一种运用场景)

注意:背景图片后面的地址,千万不要忘记加 URL, 同时里面的路径不要加引号

3、背景平铺

样式名称:

background-repeat 设置元素背景图像的平铺

4、背景图片位置

样式名称:

background-position 属性可以改变图片在背景中的位置

使用方式:

参数代表的意思是:x 坐标和 y 坐标。 可以使用 方位名词 或者 精确单位

其他说明:

1、参数是方位名词

如果指定的两个值都是方位名词,则两个值前后顺序无关,比如 left top 和 top left 效果一致

如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐

2、参数是精确单位

如果参数值是精确坐标,那么第一个肯定是 x 坐标,第二个一定是 y 坐标

如果只指定一个数值,那该数值一定是 x 坐标,另一个默认垂直居中

3、参数是混合单位

如果指定的两个值是精确单位和方位名词混合使用,则第一个值是 x 坐标,第二个值是 y 坐标

5、背景图片固定

样式名称:

background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动。

其他说明:

background-attachment 后期可以制作视差滚动的效果。

6、背景样式合写

背景合写样式:

background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;

使用方式:

7、背景色半透明

CSS3 提供了背景颜色半透明的效果。

使用方式:

  • 最后一个参数是 alpha 透明度,取值范围在 0~1之间

  • 我们习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);

注意

  • 背景半透明是指盒子背景半透明,盒子里面的内容不受影响

  • CSS3 新增属性,是 IE9+ 版本浏览器才支持的,但是现在实际开发,我们不太关注兼容性写法了,可以放心使用

一、css三大特性

1、层叠性

相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题

层叠性原则:

  • 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式

  • 样式不冲突,不会层叠

2、继承性

CSS中的继承: 子标签会继承父标签的某些样式,如文本颜色和字号。恰当地使用继承可以简化代码,降低 CSS 样式的复杂性。

子元素可以继承父元素的样式:

(text-,font-,line-这些元素开头的可以继承,以及color属性)

继承性口诀:龙生龙,凤生凤,老鼠生的孩子会打洞

行高的继承性:

 body {
   font:12px/1.5 Microsoft YaHei;
 }
  • 行高可以跟单位也可以不跟单位

  • 如果子元素没有设置行高,则会继承父元素的行高为 1.5

  • 此时子元素的行高是:当前子元素的文字大小 * 1.5

  • body 行高 1.5 这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高

3、优先级

当同一个元素指定多个选择器,就会有优先级的产生。

  • 选择器相同,则执行层叠性

  • 选择器不同,则根据选择器权重执行

选择器优先级计算表格:

优先级注意点:

  1. 权重是有4组数字组成,但是不会有进位。

  2. 可以理解为类选择器永远大于元素选择器, id选择器永远大于类选择器,以此类推..

  3. 等级判断从左向右,如果某一位数值相同,则判断下一位数值。

  4. 可以简单记忆法: 通配符和继承权重为0, 标签选择器为1,类(伪类)选择器为 10, id选择器 100, 行内样式表为 1000, !important 无穷大.

  5. 继承的权重是0, 如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是 0。

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。

  • div ul li ------> 0,0,0,3

  • .nav ul li ------> 0,0,1,2

  • a:hover -----—> 0,0,1,1

  • .nav a ------> 0,0,1,1

二、盒子模型

1、网页布局的本质

网页布局的核心本质: 就是利用 CSS 摆盒子。

网页布局过程:

  1. 先准备好相关的网页元素,网页元素基本都是盒子 Box 。

  2. 利用 CSS 设置好盒子样式,然后摆放到相应位置。

  3. 往盒子里面装内容

2、盒子模型(Box Model)组成

盒子模型:把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。

CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框外边距内边距、和 实际内容

3、边框(border)

3.1、边框的使用

1、border可以设置元素的边框。边框有三部分组成:边框宽度(粗细) 边框样式 边框颜色;

2、语法:

 border : border-width || border-style || border-color;   

边框样式 border-style 可以设置如下值:

  • none:没有边框即忽略所有边框的宽度(默认值)

  • solid:边框为单实线(最为常用的)

  • dashed:边框为虚线

  • dotted:边框为点线

3、边框的合写分写

边框简写:

 border: 1px solid red;  

边框分开写法:

 border-top: 1px solid red;  /* 只设定上边框, 其余同理 */   

3.2、表格的细线边框

1、border-collapse 属性控制浏览器绘制表格边框的方式。它控制相邻单元格的边框。

2、语法:

 border-collapse:collapse; 

collapse 单词是合并的意思

border-collapse: collapse; 表示相邻边框合并在一起

3.3、边框会影响盒子实际大小

边框会额外增加盒子的实际大小。因此我们有两种方案解决:

  • 测量盒子大小的时候,不量边框。

  • 如果测量的时候包含了边框,则需要 width/height 减去边框宽度

4、内边距(padding)

4.1、内边距的使用方式

1、padding 属性用于设置内边距,即边框与内容之间的距离。

2、语法:

合写属性:

分写属性:

4.2、内边距会影响盒子实际大小

1、当我们给盒子指定 padding 值之后,发生了 2 件事情:

  1. 内容和边框有了距离,添加了内边距。

  2. padding影响了盒子实际大小。

2、内边距对盒子大小的影响:

  • 如果盒子已经有了宽度和高度,此时再指定内边框,会撑大盒子。

  • 如何盒子本身没有指定width/height属性, 则此时padding不会撑开盒子大小。

3、解决方案:

如果保证盒子跟效果图大小保持一致,则让 width/height 减去多出来的内边距大小即可。

5、外边距(margin)

5.1、外边距的使用方式

margin 属性用于设置外边距,即控制盒子和盒子之间的距离。

5.2、外边距典型应用

外边距可以让块级盒子水平居中的两个条件:

  • 盒子必须指定了宽度(width)。

  • 盒子左右的外边距都设置为 auto 。

常见的写法,以下三种都可以:

margin-left: auto;   margin-right: auto;
margin: auto;
margin: 0 auto;

注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加 text-align:center 即可。

5.3、外边距合并

使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。

主要有两种情况:

1、相邻块元素垂直外边距的合并

当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有上外边距 margin-top ,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。取两个值中的较大者这种现象被称为相邻块元素垂直外边距的合并。

解决方案: 尽量只给一个盒子添加 margin 值。

2、嵌套块元素垂直外边距的塌陷

对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值。

解决方案:

  • 可以为父元素定义上边框。

  • 可以为父元素定义上内边距。

  • 可以为父元素添加 overflow:hidden。

5.4、清除内外边距

网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致。因此我们在布局前,首先要清除下网页元素的内外边距。

 * {
    padding:0;   /* 清除内边距 */
    margin:0;    /* 清除外边距 */
  }

注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内块元素就可以了

css第03天

一、其他样式

1、圆角边框

在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。

border-radius 属性用于设置元素的外边框圆角。

语法:

 border-radius:length;    
  • 参数值可以为数值或百分比的形式

  • 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写为 50%

  • 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角

  • 分开写:border-top-left-radius、border-top-right-radius、border-bottom-right-radius 和border-bottom-left-radius

  • 兼容性 ie9+ 浏览器支持, 但是不会影响页面布局,可以放心使用

2、盒子阴影

CSS3 中新增了盒子阴影,我们可以使用 box-shadow 属性为盒子添加阴影。 语法:

 box-shadow: h-shadow v-shadow blur spread color inset; 

3、文字阴影

在 CSS3 中,我们可以使用 text-shadow 属性将阴影应用于文本。 语法:

 text-shadow: h-shadow v-shadow blur color;

二、浮动

1、传统网页布局的三种方式

CSS 提供了三种传统布局方式(简单说,就是盒子如何进行排列顺序):

  • 普通流(标准流)

  • 浮动

  • 定位

    这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。

注意:实际开发中,一个页面基本都包含了这三种布局方式(后面移动端学习新的布局方式) 。

2、标准流(普通流/文档流)

所谓的标准流: 就是标签按照规定好默认方式排列

  1. 块级元素会独占一行,从上向下顺序排列。常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table

  2. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。常用元素:span、a、i、em 等

以上都是标准流布局,我们前面学习的就是标准流,标准流是最基本的布局方式。

3、为什么需要浮动?

总结: 有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标签默认的排列方式.

浮动最典型的应用:可以让多个块级元素一行内排列显示。

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

4、什么是浮动?

float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。

语法:

 选择器 { float: 属性值; }

5、浮动特性

加了浮动之后的元素,会具有很多特性,需要我们掌握的.

1、浮动元素会脱离标准流(脱标:浮动的盒子不再保留原先的位置)

2、浮动的元素会一行内显示并且元素顶部对齐

注意:

浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。

3、浮动的元素会具有行内块元素的特性

浮动元素的大小根据内容来决定

浮动的盒子中间是没有缝隙的

6、浮动元素经常和标准流父级搭配使用

为了约束浮动元素位置, 我们网页布局一般采取的策略是:

先用标准流父元素排列上下位置, 之后内部子元素采取浮动排列左右位置. 符合网页布局第一准侧

三、常见网页布局

浮动布局注意点

1、浮动和标准流的父盒子搭配。

先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置

2、一个元素浮动了,理论上其余的兄弟元素也要浮动。

一个盒子里面有多个子盒子,如果其中一个盒子浮动了,其他兄弟也应该浮动,以防止引起问题。

浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流.

四、清除浮动

1、为什么需要清除浮动?

由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子。

2、清除浮动本质

清除浮动的本质是清除浮动元素造成的影响:浮动的子标签无法撑开父盒子的高度

注意:

  • 如果父盒子本身有高度,则不需要清除浮动

  • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度。

  • 父级有了高度,就不会影响下面的标准流了

3、清除浮动样式

语法:

 选择器{clear:属性值;} 

我们实际工作中, 几乎只用 clear: both;

清除浮动的策略是: 闭合浮动.

4、清除浮动的多种方式

4.1、额外标签法

额外标签法也称为隔墙法,是 W3C 推荐的做法。

使用方式:

额外标签法会在浮动元素末尾添加一个空的标签。

例如 <div style="clear:both"></div>,或者其他标签(如<br />等)。

优点: 通俗易懂,书写方便

缺点: 添加许多无意义的标签,结构化较差

注意: 要求这个新的空标签必须是块级元素。

总结:

1、清除浮动本质是?

清除浮动的本质是清除浮动元素脱离标准流造成的影响

2、清除浮动策略是?

闭合浮动. 只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子.

3、额外标签法?

隔墙法, 就是在最后一个浮动的子元素后面添

4、加一个额外标签, 添加 清除浮动样式.

实际工作可能会遇到,但是不常用

4.2、父级添加 overflow 属性

可以给父级添加 overflow 属性,将其属性值设置为 hidden、 auto 或 scroll 。

例如:

overflow:hidden | auto | scroll;

优点:代码简洁

缺点:无法显示溢出的部分

注意:是给父元素添加代码

4.3、父级添加after伪元素

:after 方式是额外标签法的升级版。给父元素添加:

 .clearfix:after {  
   content: ""; 
   display: block; 
   height: 0; 
   clear: both; 
   visibility: hidden;  
 } 
 .clearfix {  /* IE6、7 专有 */ 
   *zoom: 1;
 }   

优点:没有增加标签,结构更简单

缺点:照顾低版本浏览器

代表网站: 百度、淘宝网、网易等

4.4、父级添加双伪元素

给父元素添加

 .clearfix:before,.clearfix:after {
   content:"";
   display:table; 
 }
 .clearfix:after {
   clear:both;
 }
 .clearfix {
    *zoom:1;
 }   

优点:代码更简洁

缺点:照顾低版本浏览器

代表网站:小米、腾讯等

JS

  • 变量
    • 概念和作用
      • 容器
    • 声明赋值的几种写法
      • 先声明,再赋值
        • let age
      • 声明并直接赋值
        • let age = 18
      • 同时声明多个变量
        • let age = 18, uname = 'andy'
        • 不提倡
      • 练习
        • 文字形式描述
          • 声明一个变量,用于存放用户购买的商品数量为20件
          • 声明一个变量,用于存放用户的姓名为"张三"
      • 案例:
      • 案例:
        • 交换两个变量
    • 变量的本质
      • 在内存中开辟一个空间
    • 命名规则和规范
      • 规则
        • 由字母、数字、下划线、$符号组成,不能以数字开头
        • 不能是关键字和保留字,例如:var for while const
        • 严格区分大小写
      • 规范
        • 变量名必须有意义
        • 遵守小驼峰式命名法
      • 练习
        • 大厂面试题
    • 拓展数组
      • 什么是数组? 为什么需要数组?
        • 存储班级所有人的姓名
        • 数组可以单个变量存储多个数据
      • 创建数组
        • 字面量
        • let arr = [10,29,80]
      • 取值
        • 数组[下标]
        • arr[2] === 80
  • 常量
    • 概念
      • 常量的值是无法改变的,也不能被重新声明
    • 规范
      • 和变量一致
    • 用法
      • const G = 9.8
        • 不重新赋值的数据使用const
  • 数据类型
    • 概念和作用
      • 1. 更加充分和高效的利用内存
      • 2. 也更加方便程序员的使用数据
    • 分类介绍
      • 基本数据类型
        • - number 数值型
        • - string 字符串
          • 单引号
          • 双引号
          • 反引号
          • 字符串拼接
            • '+ 变量名 +' 去替换需要替换的内容
            • 有拼接不方便引申出模板字符串
              • 模板字符串(ES6)
          • 案例:
            • 页面弹出对话框,输入名字和年龄,页面显示: 大家好,我叫xxx,今年xx岁了
        • - boolean 布尔型
        • - undefined 未定义
          • 声明一个变量没有赋值
        • - null 空引用
          • 将来存放对象的时候可以给null
      • 引用数据类型
        • - object 对象
        • - function 函数
        • - array 数组
  • 数据类型的转换
    • 为什么需要转换?
      • 从用户得到的数据都是字符串,而字符串和数字相加会变成相连
    • 显示转换
      • 转换成数字
        • Number()
        • parse系列
          • 如果介绍parse系列就是介绍区别和使用场景
        • 三者的区别
        • 案例
          • 加法器:页面输入2个数,计算两者的和,打印到页面中
      • 转换成字符串
        • String()
        • 变量.toString()
          • 括号里面可以跟进制
        • 两者区别
    • 隐式转换的小技巧
      • +号作为正号解析可以转换成Number
      • 任何数据和字符串相加结果都是字符串
  • 算术运算符
    • 加、减、乘、除、取模 (+, -, *, /, %)
    • 加号上下文
      • 如果+号左右只有一个值 解析的结果是正号 可用于隐式转换
      • 如果两边都是数值(Number)类型 则是+号运算符
      • +号的左右如果有一个数据是字符串数据类型的话 那么这个+号会被解析成连接符
    • 优先级

    • 案例
      • 对话框中输入圆的半径,算出圆的面积并显示到页面
  • 运算符
    • 赋值运算符 (=)
      • 将等号右边的值赋予给左边, 要求左边必须是一个容器
      • 累加 +=
    • 一元运算符
      • 一元运算符: 仅操作一个操作数. 比如: 正负号等
      • 自增自减运算符
        • 相同点
          • 不管是++或者-- 是在前还是在后,都是在原来的取值上自行增1或减1 类似于 => a += 1
        • 不同点
          • 符号前置 => 先加1 再使用 (快捷记忆: ++在前 先加)
          • 符号后置 => 先使用 再加1 (快捷记忆: ++在后, 后加)
        • 面试题
    • 逻辑运算符
      • 逻辑与
      • 逻辑或
      • 逻辑非
    • 比较运算符
      • > , < , >= , <= , == , === , != , !==
      • 重点介绍 等于和全等的区别, 推荐使用全等
      • 特殊说明
        • 如果是数字和"其他值"的比较 则其他值会自动转换成数字去比较
        • 涉及到"NAN"都是false (NaN)
        • 如果是"字符串"和"字符串"比较 则会比较每一个字符的ASCII码,同时是按位进行比较
        • 如果是布尔值参与比较 布尔值会转换成数字0和1
    • 运算符优先级
  • 语句
    • 表达式和语句
      • 表达式
        • 表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果
          • x = 7
          • 3 + 4
          • num++
      • 语句
        • js 整句或命令,js 语句是以分号结束(可以省略)
          • if 条件语句
          • for 循环语句
      • 区别
        • 达式计算出一个值,但语句用来自行以使某件事发生。
          • 表达式 3 + 4
          • 语句 alert() 弹出对话框
    • 语句分类
      • 顺序语句
      • 分支语句
      • 循环语句
    • 分支语句
      • if分支
        • 单条分支
          • 案例
            • 用户输入高考成绩,如果分数大于700,则提示恭喜考入黑马程序员
        • 双分支
          • 案例
            • 1.用户输入,如果工龄大于1年,年底奖金+2000, 否则年底没奖金
            • 2.让用户输入年份,判断这一年是闰年还是平年并输出
        • 多条分支
          • 案例
            • 根据输入不同时间,输出不同的问候语
            • 作业--输入分数,根据分数奖励不同的车(评级)
      • 三元运算符
        • 条件 ? 表达式1 : 表达式2
        • 对比if两条分支的区别
        • 练习案例
          • 两个数的最大值
          • 数字补0案例
            • 09
      • switch case
        • 出现定值判断使用
        • 特点说明
          • 1. switch case语句一般用于等值判断,不适合于区间判断
          • 2. switch case比较的值全等 ===
          • 3. switch case一般需要配合break关键字使用 没有break会造成case穿透
        • 案例
          • 简单加法器
      • 分支语句的综合
        • if 分支
          • 使用的最多的分支语句 任何情况下都可以通用
        • 三元运算
          • 可以简单理解为两条分支的简写形式,一些简单的两条分支可以使用三元运算符代替
          • 相较正常的两条分支语句来说多了一个返回值
        • switch case语句
          • 当出现了定值判断的时候可以使用
        • 多分支语句和switch的区别
          • 如果值比较精确用switch ,效率更高
          • 如果有范围的判断,用多分支语句
    • 断点调试
      • 是为了演示循环语句的过程
    • 循环语句
      • while循环
        • 语法
        • 练习
          • - 打印1-100以内 所有偶数
          • - 打印1-100的和
          • - 打印1-100以内所有偶数的和
      • while的使用场景介绍
        • 更适合使用在循环的次数不确定时候使用
        • 练习
          • 询问“我爱你,嫁给我吧?”,如果输入为“嫁” 跳出循环打印 “我们形影不离”,否则一直询问
          • 让用户输入用户名和密码,只有当用户名=admin并且用户密码=123456的时候才提示登录成功(跳出循环),否则一直让用户输入
          • while (true) { if (条件) { break; } } // break: 可以用来跳出循环
      • break和continue
        • break退出整个循环
        • continue退出本次循环,继续下一次循环
      • do while 循环(课下了解)
      • 综合案例
        • 存钱取钱案例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习笔记2(自用) 的相关文章

  • 有没有办法改变输入类型=“日期”格式?

    默认情况下 输入type date 显示日期为YYYY MM DD 问题是 是否可以将其格式强制为 DD MM YYYY 无法更改格式 我们必须区分有线格式和浏览器的表示格式 接线格式 The HTML5日期输入规范 https www w
  • 是否可以使用 Flying Saucer (XHTML-Renderer) 将 css 解析为类路径资源?

    我正在尝试将资源打包到 jar 中 但我无法让 Flying Saucer 在类路径上找到 css 我无法轻松构建 URL 来无缝解决此问题 https stackoverflow com questions 861500 url to l
  • Tensorflow 中的自定义资源

    由于某些原因 我需要为 Tensorflow 实现自定义资源 我试图从查找表实现中获得灵感 如果我理解得好的话 我需要实现3个TF操作 创建我的资源 资源的初始化 例如 在查找表的情况下填充哈希表 执行查找 查找 查询步骤 为了促进实施 我
  • iOS 解决方法:在没有 CSS 属性的情况下平滑滚动 滚动行为:平滑?

    编辑 我找到了一个 jQuery 解决方案 https codepen io chriscoyier pen dpBMVP https codepen io chriscoyier pen dpBMVP这个确实可以在 iOS 上运行 我想
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • 扩展位置绝对div超出溢出隐藏div

    我已经好几个月没有做过CSS了 所以我可能会错过一些简单的东西 但无论解决方案是什么 我都无法弄清楚 所以问题就在这里 这是我的代码的简化版本 div style height 100 width 200px div style margi
  • 当百分比填充定义元素高度时忽略 max-height

    The max height当内部填充大于最大高度值时 属性值似乎被忽略 例如 在元素上设置此类会导致最大高度被忽略 max height ignored height 0 or auto makes no difference max h
  • @font-face 和 font-variant 是个坏主意吗?

    如果我使用 font face字体和font variant small caps对于相同的选择器 字体将回退到 Safari 中的下一个系统默认字体 我该如何解决这个问题 我一开始在创建一个示例来复制您的问题时遇到了一些麻烦 这让我意识到
  • 异常:加载数据时 URL 获取失败

    我正在尝试设置我的机器来运行 Tensorflow 2 我从未使用过 Tensorflow 只是下载了 Python 3 7 我不确定这是否是我的机器的问题 我按照上面列出的安装说明进行操作TensorFlow 的网站 https www
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • 更改

    标签中一个单词的颜色

    我正在处理一份 html 文档 并且只想在我的文档中创建一个单词 p 标记不同的颜色 如果不做完全不同的事情 这可能吗 p p tag p p I want to make only THIS word blue p p style dis
  • Internet Explorer 中的锯齿状按钮边缘

    如何去除 Internet Explorer 中宽按钮的锯齿状边缘 例如 您还可以通过设置来消除 Windows XP 的按钮样式 以及 Windows 的所有其他版本 background color and or border colo
  • * 到底有多慢?

    大家都表示 选择器非常慢 但它到底有多慢呢 我总是试图避免它 但有时它非常有用 例如 h1 margin top 1em 简单来说 通用选择器 速度只与页面上的元素一样慢 Since 从右到左匹配浏览器获取每个元素并将其与所有候选规则进行匹
  • pip:需要将包名称tensorflow-gpu更改为tensorflow

    我正在尝试将具有 GPU 支持的张量流安装到 conda 环境中 我使用命令 pip install ignore installed upgrade https storage googleapis com tensorflow linu
  • 样式 ::-webkit-scrollbar-track 不起作用

    我正在尝试设置滚动条轨道的样式 每当我设计曲目时 div webkit scrollbar track background color blue 没有什么变化 每当我设置滚动条样式时 div webkit scrollbar backgr
  • 为什么此 TTF 字体在我的浏览器中无法使用?

    我下载了一种名为 Clunk 的 TTF 字体 并尝试将其应用于某些文本 这是我正在使用的代码 h1 Test h1 这似乎不起作用 Chrome 给了我两个错误 Failed to decode downloaded font path
  • 嵌套计算操作

    希望这很简单 我想使用CSS calc操作来执行两个计算 我想将宽度设置为等于 100 7 2 但是 如果我尝试在 CSS 计算操作中执行多个操作 则会失败 width calc 100 7 2 如何在一个 CSS 语句中执行多个计算操作
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • CSS 网格框架中的间距有什么作用?

    我正在深入研究 Web 开发 并且正在使用 Blueprint CSS 框架 其中包括网格系统 我有几个问题 水沟有什么用处 当然 它们不用于在列之间包含空间 因为您可以使用 margin CSS 属性来实现这一点 对吗 或者排水沟只是一种

随机推荐

  • helm 安装

    官方安装 https helm sh docs intro install 1 一键安装 curl https raw githubusercontent com helm helm main scripts get helm 3 bash
  • 计算机毕业设计Node.js+Vue电影票网上订票系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • Unity 动态加载Prefab

    Unity动态记载Prefab 第一种方法 从Resources文件夹读取Prefab Assets Resources是Unity中的一个特殊文件夹 放在这个文件夹里的资源包括Prefab可以被代码动态加载 GameObject Pref
  • 软件测试_笔记(完整版)

    软件测试 概述 程序 文档 数据 软件 狭义的软件测试定义 为发现软件缺陷而执行程序或系统的过程 广义的软件测试定义 人工或自动地运行或测定某系统的过程 目的在于检验它是否满足规定的需求或弄清预期结果和实际结果间的差别 为什么要做软件测试
  • LTspice入门使用教程(导入元器件&电压电流波形&幅频特性曲线)

    LTspice使用教程 本文针对LTspice的基本操作进行简单讲解 包括 导入自定义参数的元器件模型 仿真查看电压 电流波形图 输出幅频特性曲线 导入自定义参数的模型 打开LTspice 新建原理图之后 选择工具栏里的component
  • html实现点击复制内容功能

    需要实现点击复制功能需要先下载个插件 vue中可以通过 npm install clipboard save dev 来安装该插件 也可以通过使用线上cdn 复制scirpt标签引入到页面即可 html td class t left 用户
  • MatConvNet中mnist源码解析

    本文的代码来自MatConvNet 下面是自己对代码的注释 cnn mnist init m function net cnn mnist init varargin CNN MNIST LENET Initialize a CNN sim
  • 经典的8个内部排序算法

    1 直插排序 思想 每一趟 对于待排序元素a i 该元素前面的子序列已有序 在有序序列中从后往前查找其插入位置 一边比较一边移动 直至找到插入位置 插入该元素 一共n 1趟 举例 待排序序列 5 8 4 12 9 第一趟 5 8 4 12
  • 测试dx12

    按照龙书上进行测试 更改几处后 正常
  • KEIL中怎样添加STC系列单片机

    我们有时在KEIL中新建工程时需要添加STC系列单片机 但就是找不到 这是因为你安转的Keil软件中没有STC的数据库 所以需要你手动添加 这就需要在STC ISP软件 这个软件可以在STC网http www stcisp com下载或者百
  • background-position-x和background-position-y的兼容性问题

    一 语法 background position x length left center right background position y length left center right 二 取值 length 百分数 由浮点数字
  • 软件测试行业有多卷,到底饱和了没,怎么样才不会被淘汰

    原视频链接 https www bilibili com video BV1GS4y127Jp 软件测试为什么越来越卷 还在躺平你就要被淘汰了
  • js -- 如何点击某个地方不失去焦点

    用mousedown ul on mousedown li function event preventDefault
  • 部署项目到阿里云服务器无法访问

    亲测 https blog csdn net GXL 1012 article details 82958031
  • stm32 IIC驱动BH1750光照强度传感器/GY302模块

    STM32f1系列单片机使用IIC驱动BH1750 转发此文请标明出处 首先说明下 GY302模块上面其实就是一个BH1750芯片 然后加了一小丢丢的外部驱动电路 实际上本质来说没什么区别 用起来一样 简单的来说下BH1750这款光照强度传
  • Nuxt.js学习(四) --- Nuxt.js过渡动效

    TOC 1 Nuxt js过渡动效 1 1 官方文档 Nuxt js 使用 Vue js 的
  • MySQL~多表查询

    一 多表查询 查询语法 select 列名列表 from 表名列表 where 1 准备sql 创建部门表 CREATE TABLE dept id INT PRIMARY KEY AUTO INCREMENT NAME VARCHAR 2
  • python保存所有变量值_如何在当前python会话中保存所有变量?

    繁星coding 这是使用spyderlib函数保存Spyder工作区变量的方法 Load data from spydata filefrom spyderlib utils iofuncs import load dictionaryg
  • Arduino接收串口发送的数据

    一 我们可以通过Arduino发送数据给电脑通过串口监视器进行观察 二 可以通过调用函数Serial available 来判断有没有数据发送过来 从而接收数据 三 函数Serial read 可以读取串口过来的数据
  • 学习笔记2(自用)

    一 emmet语法 1 简介 Emmet语法的前身是Zen coding 它使用缩写 来提高html css的编写速度 Vscode内部已经集成该语法 快速生成HTML结构语法 快速生成CSS样式语法 2 快速生成HTML结构语法 生成标签