JS基础知识总结01
编程
编程∶就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程
计算机程序∶就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌握的语言来编写的,所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
从事编程的人员,就是程序员。但是一般程序员都比较幽默,为了形容自己的辛苦工作,也成为“码农”,或者“程序猿”/“程序媛”
注意:上面所定义的计算机指的是任何能够执行代码的设备,可能是智能手机、ATM机、黑莓PI、服务器等等。
计算机语言
计算机语言指用于人与计算机之间通讯的语言,它是人与计算机之间传递信息的媒介。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言和高级语言三大类。
实际上计算机最终所执行的都是机器语言,它是由“0”和“1”组成的二进制数,二进制是计算机语言的基础。
编程语言
可以通过类似于人类语言的”语言”来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言( ProgrammingLanguage ) .
编程语言是用来控制计算机的一系列指令,它有固定的格式和词汇(不同编程语言的格式和词汇不一样),必须遵守。如今通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。
高级语言主要是相对于低级语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift等。
翻译器
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,为此,我们需要一个翻译器。
翻译器可以将我们所编写的源代码转换为机器语言,这也被称为二进制化。记住1和0。
汇编语言和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。
高级语言主要是相对于低级语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift等。
编程语言和标记语言区别
编程语言有很强的逻辑和行为能力。在编程语言里你会看到很多if else ,for 、while等具有逻辑性和行为能力的指令,这是主动的。
标记语言( html )不用于向计算机发出指令,常用于格式化和链接。标记语言的存在是用来被读取的,他是被动的。
汇编语言和机器语言实质是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。
高级语言主要是相对于低级语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言、Objective-C、Swift等。
计算机基础
计算机组成
硬件
输入设备 鼠标、键盘、手写板、摄像头等
输出设备 显示器、打印机、投影仪等
CPU 负责处理数据与运算
硬盘/内存 负责存储数据,硬盘永久存储数据,内存暂时存储数据
软件
系统软件 windows、Linux、macOS
应用软件 浏览器、QQ.vSCode、Sublime、Word
数据存储
1.计算机内部使用二进制0和1来表示数据。
2.所有数据,包括文件、图片等最终都是以二进制数据(0和1)的形式存放在硬盘中的。
3.所有程序,包括操作系统,本质都是各种数据,也以二进制数据的形式存放在硬盘中。平时我们所说的安装敦件,其实就是把程序文件复制到硬盘中。
数据存储单位
bit < byte < kb <GB<TB<…
位(bit): 1bit可以保存一个0或者1(最小的存储单位)
字节(Byte) : 1B= 8b
千字节(KB)∶ 1KB= 1024B
兆字节(MB): 1MB = 1024KB
吉字节(GB): 1GB = 1024MB
太字节(TB):1TB = 1024GB
…
程序运行
硬盘 内存条 cpu
1.打开某个程序时,先从硬盘中把程序的代码加载到内存中
\2. CPU执行内存中的代码
注意∶之所以要内存的一个重要原因,是因为cpu运行太快了,如果只从硬盘中读数据,会浪费cpu性能,所以,才使用存取速度更快的内存来保存运行时的数据。(内存是电,硬盘是机械)
JavaScript基础
JS的命名规范
标识符命名规范
变量、函数的命名必须要有意义
变量的名称一般用名词
函数的名称一般用动词
操作符规范
操作符的左右两侧各保留一个空格
单行注释规范
// 单行注释前面注意有个空格
其他规范
for () {
// for循环中“()”括号两边保留一个空格,末尾的尖括号和for的首字母对齐
}
Js基础知识
1. JavaScript是什么
JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言(Script是脚本的意思)脚本语言∶不需要编译,运行过程中由js解释器(js 引擎)逐行来进行解释并执行
现在也可以基于Node.js技术进行服务器端编程
-
打开某个程序时,先从硬盘中把程序的代码加载到内存中
-
CPU执行内存中的代码
注意∶之所以要内存的一个重要原因,是因为cpu运行太快了,如果只从硬盘中读数据,会浪费cpu性能,所以,才使用存取速度更快的内存来保存运行时的数据。(内存是电,硬盘是机械)
JavaScript的作用
表单动态校验(密码强度检测)(JS产生最初的目的)
网页特效
服务端开发(Node.js)
桌面程序(Electron)
App(Cordova)
控制硬件-物联网(Ruff)游戏开发(cocos2d-js)
2. HTML/CSS/JS的关系
HTML/CSS标记语言–描述类语言
HTML决定网页结构和内容(决定看到什么),相当于人的身体
CSS决定网页呈现给用户的模样(决定好不好看),
相当于给人穿衣服、化妆
JS脚本语言–编程类语言
实现业务逻辑和页面控制(决定功能),相当于人的各种动作
3. 浏览器执行JS
浏览器分成两部分:渲染引擎和JS引擎
渲染引擎∶用来解析HTML与CSS,俗称内核,比如chrome浏览器的blink,老版本的webkit
JS引擎:也称为JS解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如chrome 浏览器的V8
浏览器本身并不会执行IS代码,而是通过内置JavaScript引擎(解释器)来执行JS代码。JS引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以JavaScript 语言归为脚本语言,会逐行解释执行。
JavaScript组成
ECMAScript(JavaScript语法) DOM(页面文档模型) BOM(浏览器对象模型)
ECMAScript是由ECMA国际(原欧洲计算机制造商协会)进行标准化的一门编程语言,这种语言在万维网上应用广泛,它往往被称为JavaScript(网景公司)或JScript(微软公司),但实际上后两者是ECMAScript语言的实现和扩展。
ECMAScript : ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。
1. JavaScript书写规范
JS有3种书写位置,分别为行内、内嵌和外部。
<!-- 1.行内样式的js直接写到元素内部 -->
<input type="button" value="你好" onclick="alert('hello word!')">
<!-- 2. 内嵌式js-->
<script>alert('沙漠骆驼');</script>
<!-- 3.外链式js -->
<script src="./js/main.js"></script>
2. JavaScript注释
// 单行注释 Ctrl + /
/* 多行注释 默认的快捷键 Shift + Alt + a
多行注释 vscode中修改多行注释的快捷键: Ctrl + shift + /
*/
3. JavaScript输入输出语句
为了方便信息的输入输出,JS中提供了一些输入输出语句,其常用的语句如下:
方法 | 描述 |
---|---|
alert(msg) | 浏览器弹出警示框(展示给用户) |
console.log(msg) | 浏览器控制台打印输出信息(程序员使用) |
prompt(info) | 浏览器弹出输入框,用户可以输入 |
变量
- 什么是变量?
变量是用于存放数据的容器。我们通过变量名获取数据,甚至数据可以修改。
本质:变量是程序在内存中申请的一块用来存放数据的空间。
- 变量的使用
变量在使用时分为两步:1. 声明变量,2. 赋值
声明变量
var age; 声明—个名称为age的变量
var是一个JS关键字,用来声明变量( variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管
age是程序员定义的变量名,我们要通过变量名来访问内存中分配的空间
赋值
age = 10;// 给age这个变量赋值为10
= 用来把右边的值赋给左边的变量空间中此处代表赋值的意思
变量值是程序员保存到变量空间里的值
拓展:弹出一个输入框,打印输入框中输入的文字
var name = promit(“请输入用户名”);
Console.log(name);
- 变量的语法拓展
(1) 更新变量
一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准
(2) 同时声明多个变量
同时声明多个变量时,只需要写一个var,多个变量名之间使用英文逗号隔开
var age = 10,name = ‘zs’, sex =2;
(3) 声明变量的特殊情况
只声明不赋值结果是? 程序也不知道里面存的是啥所以结果是 undefined未定义的
不声明不赋值直接使用 某个变量会报错滴
不声明直接赋值使用
- 变量命名规范
-
由字母(A-Za-z)、数字(O-9)、下划线(_)、美元符号($)组成,如: usrAge, num01,_name
-
严格区分大小写。var app;和var App;是两个变量
-
不能以数字开头。18age是错误的
-
不能是关键字、保留字。例如: var、for、while变量名必须有意义(有特殊意义了,这个叫做关键字不能作为变量名的)。
-
name我们尽量不要直接使用name 作为变量名
-
遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。myFirstName
推荐翻译网站:有道 爱词霸
变量总结
- 为什么需要变量?
因为我们一些数据需要保存,所以需要变量
- 变量是什么?
变量就是一个容器,用来存放数据的。方便我们以后使用里面的数据
- 变量的本质是什么?
变量是内存里的一块空间,用来存储数据。
- 变量怎么使用的?
我们使用变量的时候,一定要声明变量,然后赋值声明变量本质是去内存申请空间。
- 什么是变量的初始化?
声明变量并赋值我们称之为变量的初始化
- 变量命名规范有哪些?
变量名尽量要规范,见名知意——驼峰命名法
区分哪些变量名不合法
数据类型
- 变量的数据类型
JavaScript是一种弱类型或者说动态语言
js 的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的
JavaScript拥有动态类型,同时也意味着相同的变量可用作不同的类型(变量的数据类型会根据赋值的内容改变)
- 简单数据类型(基本数据类型)
简单数据类型 | 描述 | 默认值 |
---|---|---|
Number | 包含整型值和浮点型值,如21、0.21 | 0 |
Boolean | 布尔值类型,如true 、 false,等价于1和0 | true/false |
String | 字符串类型,如"张三”注意咱们js 里面,字符串都带引号 | “” |
Undefined | var a;声明了变量a但是没有给值,此时a = undefined | undefined |
Null | var a = null;声明了变量a 为空值 | null |
数字型(Number)
数字型范围
JavaScript中数值的最大和最小值
alert (Number.MAX_VALUE); //1.7976931348623157e+308
alert (nuber.MIN_VALUE); //5e-324
数字型三个特殊值
数值 | 描述 |
---|---|
Infinity | 代表无穷大,大于任何数值 |
-Infinity | ,代表无穷小,小于任何数值 |
NaN | Not a number,代表一个非数值 |
isNaN()函数使用
isNaN() 这个方法用来判断非数字并且返回一个值
如果是数字返回的是 false 如果不是数字返回的是true
console.log(isNaN(12)); // false
注意:进制转换
-
在JS中八进制前面加O,十六进制前面加Ox
-
017(八进制) == 15(十进制) == 0xf(十六进制)
-
八进制 0 ~ 7 我们程序里面数字前面加0 表示八进制
-
十六进制 0 ~ 9 a ~ f #ffffff 数字的前面加 0x 表示十六进制
字符串型(String)
字符串引号嵌套
JS可以用单引号嵌套双引号,或者用双引号嵌套单引号(外双内单,外单内双)
字符串转义符
字符串中有特殊字符,我们称之为转义符。转义符都是\开头的
转义符 | 描述 |
---|---|
\n | 换行符,n是newline 的意思 |
\ | 斜杠\表示转义 |
’ | '单引号 |
" | ”双引号 |
\t | tab缩进 |
\b | 空格,b是blank的意思 |
字符串长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度。
字符串拼接
多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串(只要有字符串和其他类型相拼接 最终的结果是字符串类型)
+号总结口诀: 数值相加,字符相连
布尔型Boolean
布尔类型有两个值: true和false ,其中 true表示真(对),而false表示假(错)。
布尔型和数字型相加的时候,true的值为1 , false的值为0。
Undefined和Null
一个声明后没有被赋值的变量会有一个默认值undefined(如果进行相连或者相加时,注意结果)
如果一个变量声明未赋值 就是 undefined 未定义数据类型
-
undefind + 字符串 = undefind字符串
-
undefind + 数值 = NaN
-
undefind + 布尔值 = NaN
一个声明变量给null值,里面存的值为空,即为空值
-
Null + 字符串 = null字符串
-
Null + 数值 = 数值
-
Null + 布尔值 = 0/1 //true为1,flase为0
获取变量数据类型
typeof可用来获取检测变量的数据类型
prompt 取过来的值是 字符型的
字面量:字面量是在源代码中一个固定值的表示法,就是字面量表示如何表达这个值。
数字字面量:8,9,10
字符串字面量︰‘黑马程序员’,"大前端”
布尔字面量: true , false
数据类型转换
使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。
数据类型转换:就是把一种数据类型的变量转换成另外一种数据类型。我们通常会实现3种类型的转换: 转换为字符串、转换为数字、转换为布尔值
转换为字符串类型(重点:加号拼接)
方法 | 描述 | 案例 |
---|---|---|
toString() | 转成字符串 | var num= 1; alert(num.toString()); |
String() | 强制转换转成字符串 | var num = 1; alert(String(num)); |
123 + “” | 加号拼接字符串 和字符串拼接的结果都是字符串 | var num = 1; alert(num+“我是字符串”); |
注意:利用 + 拼接字符串的方法实现转换效果 隐式转换 var num = 1; alert(num + ‘’);
转换为数字型(重点:pareInt()函数 parseFloat()函数)
方法 | 描述 | 案例 |
---|---|---|
parselnt(string) | 将string类型转成整数数值型 | parseInt(“78”) |
parseFloat(string) | 将string类型转成浮点数数值型 | parseFloat(“78.21”) |
Number() | 强制转换函数 将string类型转换为数值型 | Number(”12“) |
js隐式转换( - * / ) | 利用算术运算隐式转换为数值型 | ‘12’-0 |
注意:
- parselnt和parseFloat单词的大小写
- parseInt()取整,parseFloat()取小数
- parseInt()和parseFloat()使用时如果以数字开头可以取出前面数字,如果不以数字开头取值为NaN
转换为布尔型
Boolean()函数 其他类型转成布尔值 Boolean(‘true’);
代表空、否定的值会被转换为false ,如"、0、NaN.null、undefined
其余值都会被转换为true