目录
学习内容:
一、
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.输出语句
-
输出语句,在js中可以通过输出语句,查看对应的数据和结果,输出语句也可以作为调试程序一种手段
-
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盘、云盘、光盘、内存
// 内存和内存条 不一样
常用:硬盘、内存
-
硬盘和内存存储数据的区别
硬盘的读取速度慢,内存读取速度更快
硬盘的容量更大可以存储大量的数据,内存容量有限
硬盘保存的是永久性数据,内存保存的是临时数据(断电消失)
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.赋值运算符
-
赋值运算符: '='
-
注意:js中的赋值运算不是数学上的等于符号
-
赋值运算符,运算过程是将赋值号右边表达式的值,赋值给左边的变量
-
变量数据的改变只能是通过赋值运算!
-
复合赋值运算符:+= -= *= /= %= var num = 50num+=20 ===> num = num + 20以上其他复合赋值运算符,同理!
7.比较运算符
-
比较运算符: > < >= <=
-
比较运算符是将左右两侧的表达式进行数据的比较,得到一定是 逻辑值(布尔值)
-
比较运算符的结果,只有两个 要么 true 或者 false
8.相等运算符
-
相等运算符:== != === !==
-
==(相等):相等运算符在比较左右两边时,如果左右两边的数据类型不同,它会先进行隐式转换将两边的类型统一,在进行比较
-
===(全等):全等运算在比较左右两边时,如果两边数据类型不同,直接返回false,不会进行隐式的数据转换
-
!=(不等):不等运算符在比较左右两边时,如果左右两边的数据类型不同,它会先进行隐式转换将两边的类型统一,在进行比较
-
!==(不全等):不全等运算在比较左右两边时,如果两边数据类型不同,直接返回true,不会进行隐式的数据转换
9.逻辑运算符
-
逻辑运算符:与(&&) 或(||) 非(!)
-
逻辑运算符,是将两边表达式进行逻辑比较,得到的也是一个逻辑值!
-
结果: 逻辑运算符的结果不一定是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 (表达式) { 语句; .... }