JS学习心得

目录

学习内容:

一、

1.JS的背景

2.JS的特点

3.JS基本语法特点

4.JS和java语言的区别

5.JS的引用方式

6.注释语句

7.输出语句

8.程序的本质

9.数据的保存

10.变量

11.字面量

12.标识符的命名规则

13.变量类型的检测

14.数据类型的相互转换

二、

1.运算符

2.算术运算题

3.表达式

4.一元运算符

5.自增自减运算

6.赋值运算符

7.比较运算符

8.相等运算符

9.逻辑运算符

10.条件运算符

11.括号运算符

12.逗号运算符

三、

1.流程控制语句

2.语句&语句块

3.输入语句

4.if语句

5.if...else语句

6.swtich...case

7.while循环语句

8.break & continue

四、

1.do...while循环语句

2.循环嵌套

3.for循环

4.对象类型

5.花括号对象

6.值存储和地址存储

7.数组

五、

1.函数

2.函数的创建和声明

3.函数传参时的规则

4.函数的返回值

5.函数对象

6.匿名函数

7.方法

8.函数的参数传递

9.作用域

10.作用域链

12.JS的预解析

13.函数调用时隐含的两个参数

六、

1.自执行函数(IIFE)

2.window(顶层对象)

3.函数的声明和创建

4.this关键字

6.垃圾回收机制

7.闭包

七、

1.构造函数

2.new关键字

3.构造函数实例化对象

4.原型属性

5.原型对象

6.原型链

7.原型链实现继承

8.原型对象的详解

八、

1.包装对象

2.回调函数callback

3.this的劫持

4.JS中的假值

5.ES6中的let&const

6.var & let & const三者的区别

九、

1.箭头函数

2.解构赋值

3.rest参数

4.扩展运算符

5.形参的默认值

十、

1.模板字符串

2.String实例对象的API

十一、

1.Array实例对象常用API

2.数组相关的遍历器

十二、

1.ES6中对象的简化

2.对象中的尾逗号

3.静态方法

4.Object对象的静态方法

5.Object实例对象的方法

6.Class类

7.定义一个类

8.类的继承

心得

一、学习进度上

二、知识点接收

三、作业练习

四、心理感悟


学习内容:

一、

1.JS的背景

1.W3C将网页的标准分成了三部分:

​ HTML 页面的结构

​ CSS 页面的样式

​ JavaScript 页面的行为

2.JavaScript(JS)

​ - 发展背景

​ - 创建JavaScript的初衷

​ - JavaScript最开始由网景公司创建的,参考了当时最火热编程语言java

​ - ECMA(欧洲计算机制造联合会)

​ - JavaScript被 ECMA组织更名为 ECMAscript(ES)

2.JS的特点

1.JavaScript是一门轻量级、基于面向对象的、即时编译的一门解释型语言。

​ - 编程语言:人与计算机交流的语言,

​ - 就像人们平时交流使用 中文 、 英文、 德文等

2.计算机语言按照编译模型进行分类:

编译型 : c语言

​ - 编译型语言就是先将代码整体编译后生成一个编译文件,最终交给计算机执行该文件

解释型 : JavaScript、python(JIT: JUST IN TIME)

​ - 解释型语言,不会生成一个编译文件,而是解释一行执行一行。

3.JS基本语法特点

​ 1、js严格区分大小写

​ 2、每一行代码应该以分号结尾,但是可以省略

​ 3、js代码的执行顺序,从上往下依次执行

4.JS和java语言的区别

​ java是面向对象的编程语言,通常也将java称作为解释型语言!严格意义上java是混合型的编程语言

​ JavaScript一门类似于java的编程语言

​ 雷锋和雷锋塔 周杰和周杰伦 范伟和范玮琪

5.JS的引用方式

1.js大多时候都是依托于浏览器这个环境进行运行的

2.js引入到网页的三种方式;

​ - 1、行内式 通过 on+事件名 的形式书写js代码

​ - 这种方式可以,但不推荐!实际开发中不要使用

​ - 2、内部引入式 (通过html中script标签)

​ - 3、外部js文件的引入

注意:使用外部js文件引入,需要通过src属性去指定js文件的路径

​ 1.src属性它具备阻塞页面的能力,它会将src所指引的文件全部下载完毕后,才会执行后面的内容

​ 2.所以,通常会将外部js文件的引入标签放到body的末尾

6.注释语句

注释语句:用来调试代码、标记代码、方便阅读,不会被执行,也不会影响程序报错

​ js中的注释语句分为单行注释、多行注释

​ 单行注释:只注释一行的代码 语法 //

​ 多行注释:可以同时注释多行 语法 /**/

 /*
            sdfsdf
            sdfsdfs
            dfsdfsdf
            sdfsdf
        */
        快捷注释方式 ctrl+/


7.输出语句

  1. 输出语句,在js中可以通过输出语句,查看对应的数据和结果,输出语句也可以作为调试程序一种手段

  2. JavaScript中有三种输出型语句:

​ (1)页面输出 不推荐,不常用

​ document.write('hello world!')

​ 该方式所输出的内容,用户可见,会影响页面整体内容!

​ (2)弹窗输出 不推荐,偶尔使用,通常用户交互的提示手段

​ alert('hello world!')

​ 该方式输出的内容用户也是可见的,并且该方式具备一定的交互能力

​ 该方式会阻塞后面js代码的执行

​ (3)控制台输出 使用浏览器的控制台工具

​ console.log('hello world!')

​ log 没有任何的语义 普通信息

​ 推荐使用,大多数情况下都是采用该方式

​ 输出数据用户不可见,也不会阻塞代码

​ 该方式没有与用户的交互

        console.info('输出一条信息')

        console.warn('警告信息')

        console.error('错误信息')

8.程序的本质

1.程序的组成是什么,由组成了程序?

​ 程序 = 数据结构 + 算法

​ 程序 = 数据 + 函数(处理逻辑,处理过程)

​ 数据: 对现实生活中具体的事物的一种抽象的表达或者描述

​ 函数:封装好的一段可以反复调用的代码块!并且可以对数据进行处理实现某种功能!

2.JavaScript中也有对应的数据类型的划分:

​ - 四基两空一对象 , bigInt

​ - 四基: number(数值类型) 、string (字符串类型) 、 bool(布尔类型)、 symbol(符号类型)

​ - 两空: Null (空对象,空引用) Undefined (未定义的空值)

​ - 一对象: Object (对象类型,复杂数据,引用数据类型)

​ - 在JavaScript中除开基本数据类型以外,“万物皆对象”

 // 1、 Number 数值类型  数值型的相关数据,整数、小数

        console.log(10)
        console.log(3.14)
        console.log(-200)
        console.log(NaN)
      特殊的数值类型:
          NAN (not a number)

   // 2、 String 字符串类型  
 字符串类型是由单引号或者双引号引起来的,称作为字符串类型
        console.log('a');
        console.log('abc');
        console.log("hello world!");
        console.log('1');

  // 3、Boolean 布尔类型  只有两个值  true(真) 和  false(假) 代表真和假
  true和false是布尔值,也叫做逻辑值
        console.log(true);
        console.log(false);

  // 4、Null 类型 空引用,空对象  该类型的值只有一个 null
        console.log(null)

  // 5、Undefined 空值  该类型的值只有 Undefined
        console.log(undefined);

9.数据的保存

1.数据的保存

​ 数据库、硬盘、u盘、云盘、光盘、内存

​ // 内存和内存条 不一样

​ 常用:硬盘、内存

  1. 硬盘和内存存储数据的区别

​ 硬盘的读取速度慢,内存读取速度更快

​ 硬盘的容量更大可以存储大量的数据,内存容量有限

​ 硬盘保存的是永久性数据,内存保存的是临时数据(断电消失)

10.变量

1.变量:变量是存储数据的容器,通过这个容器我们将程序中所用到的数据进行保存!

​ 变量本质上是存放到内存空间中的,一旦程序结束,变量所占据的空间将得到释放

2.编程语言通过保存数据的方式不同,可以将编程语言分为两大类

​ (1)强类型语言(静态类型) : c 、 java

强类型语言,在变量声明的同时就已经确定了该变量的类型

​ int num = 50

​ (2)弱类型语言(动态类型) : JavaScript 、 python

弱类型语言,变量中存储的数据类型是可以发生改变,存储什么样的数据,该变量就是什么数据类型

11.字面量

就是一些固定的值,数据的直接形式, 比如 10,'a', 'hello world'

12.标识符的命名规则

1.标识符:就是为变量、函数、形参、对象属性、对象方法等命名的一段字符

2.标识符的命名规则:

​ - 1、标识符只能由数字、字母、下划线、$组成

​ - 2、不能以数字进行开头

​ - 3、不能使用关键字或者保留字作为标识符的名字

​ - 关键字:if else for return ...

​ - 保留字:目前某些单词并没有实际的含义,未来可能会被赋予其含义的单词

​ - 4、标识符的命名严格区分大小

​ - 5、标识符的命名应该遵循'见名知义'

​ - 6、如果标识符由多个单词组成应采用 驼峰命名法 abcAbcBcc

​ - 比如 blackGroundColor

​ - 硬性规则:1、2、3、4

​ - 软性规则:5、6

3.标识符命名问题

​ if 错

​ IF 对

​ 1NUM 错

​ NUM 对

​ _XXX 对

​ num2 对

​ num# 错

​ true 错

13.变量类型的检测

1.基本的数据类型: Number String Boolean Symbol

2.两空: Null 、 Undefined

3.变量是保存数据的容器

4.JavaScript是一门弱类型语言,动态的

5.typeof 运算符 可以检测对应变量的类型

14.数据类型的相互转换

数据类型的相互转换:

​ - 强制转换 (人为)

​ - 隐士转换(自动转换)

二、

1.运算符

运算符:通过js给定的符号,对数据进行运算或者操作,得到一个新的数据!

js中的运算符:

​ 算术运算符

​ 单目运算符

​ 自增和自减运算符

​ 比较运算符

​ 逻辑运算符

​ 括号运算符

​ 逗号运算符

​ 条件运算符

2.算术运算题

算术运算符:+ - * / %(模、取余) **(幂运算)

(1)+(加号) : 将+号两边的number类型的数据,进行相加得到一个相加后的值

​ 如果+号的两边不是number类型(string类型除外),它会先将其隐式转为number类型然后再进行计算

​ 注意:加号运算也可以用作为字符串的拼接,当+的两侧有一边为string类型的数据,那么加法运算就变成了字符串的拼接运算

​ 通常利用加号的这特性进行两个字符串的拼接

(2) - (减号) : 将-号两边的number类型的数据,进行相加得到一个相加后的值

​ 如果-号的两边不是number类型,它会先将其隐式转为number类型然后再进行计算

(3)* (乘号) : 将*号两边的number类型的数据,进行相加得到一个相加后的值

​ 如果*号的两边不是number类型,它会先将其隐式转为number类型然后再进行计算

(4) / (除号,数学意义上的除法) : 将*号两边的number类型的数据,进行相加得到一个相加后的值

​ 如果*号的两边不是number类型,它会先将其隐式转为number类型然后再进行计算

PS:console.log(0.1+0.2)不等于0.3

3.表达式

表达式:是js语句的基本构成单位!,表达式是通过某种运算后可以得到一个确定的数据!

4.一元运算符

一元运算符(单目运算):一元运算是对一个数据进行运算,而不是多个数据之间的运算

(1)+

(2) -

(3) typeof

(4) new

(5)delete

(6) !

(7)++(自增)

(8) -- (自减)

5.自增自减运算

(1)++(自增运算) -- (自减运算),两个都是属于单目运算

(2)++(自增运算),有两种形式:

​ - 前自加:

​ 语法: ++变量名 ==> 变量名 = 变量名 + 1

​ 前自加是先将变量的值进行加1后,再参与后续的计算!

​ - 后自加

​ 语法: 变量名++ ==> 变量名 = 变量名 + 1

​ 先使用变量当前值参与运算,运算完毕后,再将变量的值进行加1

​ 注意:不管是前自加还是后自加,最后变量的值都会在原值上加1

6.赋值运算符

  1. 赋值运算符: '='

  2. 注意:js中的赋值运算不是数学上的等于符号

  3. 赋值运算符,运算过程是将赋值号右边表达式的值,赋值给左边的变量

  4. 变量数据的改变只能是通过赋值运算!

  5. 复合赋值运算符:+= -= *= /= %= var num = 50num+=20 ===> num = num + 20以上其他复合赋值运算符,同理!

7.比较运算符

  1. 比较运算符: > < >= <=

  2. 比较运算符是将左右两侧的表达式进行数据的比较,得到一定是 逻辑值(布尔值)

  3. 比较运算符的结果,只有两个 要么 true 或者 false

8.相等运算符

  1. 相等运算符:== != === !==

  2. ==(相等):相等运算符在比较左右两边时,如果左右两边的数据类型不同,它会先进行隐式转换将两边的类型统一,在进行比较

  3. ===(全等):全等运算在比较左右两边时,如果两边数据类型不同,直接返回false,不会进行隐式的数据转换

  4. !=(不等):不等运算符在比较左右两边时,如果左右两边的数据类型不同,它会先进行隐式转换将两边的类型统一,在进行比较

  5. !==(不全等):不全等运算在比较左右两边时,如果两边数据类型不同,直接返回true,不会进行隐式的数据转换

9.逻辑运算符

  1. 逻辑运算符:与(&&) 或(||) 非(!)

  2. 逻辑运算符,是将两边表达式进行逻辑比较,得到的也是一个逻辑值!

  3. 结果: 逻辑运算符的结果不一定是true 或者 false 逻辑运算表达式的结果是将表达式中所计算的实际值,作为整个逻辑表达式的结果进行返回

10.条件运算符

条件运算符(三目运算符):  
      表达式1 ? 表达式2 : 表达式3

 计算过程,首先计算表达式1的逻辑值,如果为true 那么将表达式2的值作为整个条件表达式的值进行返回,反之则将表达式3的值做整个条件表达式的值返回

     var res =  5>3 ? 20 : 30
     console.log(res);//20

11.括号运算符

括号也是一种运算符,并且优先级最高,有括号先算括号

12.逗号运算符

","在大多数时候是作为分隔符使用的,比如多个变量的声明时 var a,b,c

三、

1.流程控制语句

流程控制结构:顺序结构、选择结构、循环结构

2.语句&语句块

程序是由一条一条语句组成的。

3.输入语句

js中的输入语句是: prompt函数

通过该函数,可以从浏览器中输入相应的数据,到程序中!

4.if语句

if语句是选择语句中的单分支 语法1: if(表达式) 语句;

语法2:
            if(表达式) {
                语句1;
                语句2;
                .....
            }

5.if...else语句

if...else 是双分支语句,要么执行if 要么执行else

6.swtich...case

switch语句,属于条件分支语句,多分支语句!

7.while循环语句

while循环语句, 语法: while (表达式) { 语句; .... }

8.break & continue

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值