计算机组成
硬件组成:
输入设备
鼠标、键盘、手写板、摄像头等
输出设备
显示器、打印机、投影仪等
CPU
负责处理数据与运算
硬盘
负责存储数据,硬盘永久存储数据
内存
内存暂时存储数据
软件组成:
系统软件
Windows、 Linux、 MacOS
应用软件
浏览器、QQ、 VSCode、Word
总结
存储设备分为内存和外存,外存也叫硬盘,内存也叫运行内存。说到这,就不得不说说所谓运行内存中的技术了-----虚拟内存技术的运用。由于内存一般是8G,16G,32G这样子的,存储容量,而且它是电易失性的,造价昂贵,但是它的读写速度是非常快的,而硬盘它是存储容量大,而且停电不会丢失数据,但是它的读写速度是比较慢的。所以我们一般采用内存配合CPU实现虚拟内存技术和存放系统和应用程序的数据,最大程度发挥CPU的性能。虚拟内存技术是通过操作系统分配内存,当程序运行时,将程序运行所需要的代码调入内存当中,当我们不用时关掉程序,又会调到硬盘中,当运行内存不够时,会把硬盘的空间当做内存来用,所以虽然虽然内存只有8G的电脑,却可以运行比它大很多倍的程序。
数据存储:
计算机内部使用二进制 0 和 1来表示数据。
所有数据,包括文件、图片等最终都是以二进制数据(0 和 1)的形式存放在硬盘中的
所有程序,包括操作系统,本质都是各种数据,也以二进制数据的形式存放在硬盘中
硬盘、内存都是保存的二进制数据
数据存储单位:
大小关系:bit < byte < kb < GB < TB< PB< EB< ZB< YB< ……
位(bit): 1bit 可以保存一个 0 或者 1 (最小的存储单位)
字节(Byte):1B = 8b
千字节(KB):1KB = 1024B
兆字节(MB):1MB = 1024KB
吉字节(GB): 1GB = 1024MB
…
计算机运行软件的过程
打开某个程序时,先从硬盘中把程序的代码加载到内存中
CPU执行内存中的代码
总结:CPU只认识01的二进制的数字,所以CPU执行的速度非常的快。
编程语言
编程
让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
通过类似于人类语言的“语言”来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言
编程语言是用来控制计算机的一系列指令,它有固定的格式和词汇
汇编语言
直接对硬件操作,只不过指令采用了英文缩写的标识符,容易识别和记忆。
高级语言
并不是特指某一种具体的语言,而是包括了很多编程语言,常用的有C语言、C++、Java、C#、Python、PHP、JavaScript、Go语言
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,为此,我们需要一个翻译器
JavaScript介绍
布兰登·艾奇 10天完成 JavaScript设计
最初命名为Live Script,后来在与Sun合作之后将其改名为JavaScript.
JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言
脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
解释型语言和编译型语言
编译型:在代码执行之前进行编译,生成中间代码文件
解释型:是在运行时进行及时解释,并立即执行
JavaScript能做什么
表单动态校验(密码强度检测) ( JS 产生最初的目的 )
网页特效
服务端开发(Node.js)
桌面程序(Electron)
App(Cordova)
控制硬件-物联网(Ruff)
游戏开发(cocos2d-js)
浏览器执行 JS
浏览器分成两部分:渲染引擎和 JS 引擎
1.渲染引擎:用来解析HTML与CSs,俗称内核,比如 chrome浏览器的 blink,老版本的 webkit
2.JS引擎:也称为JS解释器。用来读取网页中的 javaScript代码,对其处理后运行,比如 chrome浏览器的V8
组成
ECMAScript原生JS语法
JavaScrip 网景公司
Jscript微软公司
浏览器
DOM——文档对象模型
BOM——浏览器对象模型
总结:JS是脚本语言,这是他的使命,由ECMAjavascript、DOM、BOM组成,但他不是一种严谨的编程语言,后来的Typescript是JavaScript的超集,主要增加了类型约束,使他更加严谨。
基础语法规则
写法
1. 内部JS:定义<script>,标签体内容就是js代码
2. 外部JS:定义<script>,通过src属性引入外部的js文件
注意:
1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
2. <script>可以定义多个。
JavaScript注释
单行注释
// 我是一行文字,不想被 JS引擎 执行,所以 注释起来
// 用来注释单行文字( 快捷键 ctrl + / )
多行注释
/*
获取用户年龄和姓名
并通过提示框显示出来
/
/ */ 用来注释多行文字( 默认快捷键 alt + shift + a )
变量
变量的概念:一小块存储数据的内存空间
声明变量-- 语法:var 变量名
赋值-- age = 10; // 给 age 这个变量赋值为 10
变量声明并赋值:var 变量名 = 初始化值;
同时声明多个变量
var age = 10, name = ‘zs’, sex = 2;
变量命名规范
数字、字母、下划线、$
不能 以数字开头
不能 是关键字、保留字
严格区分大小写
建议
变量名必须有意义
遵守驼峰命名法
数据类型
原始数据类型(基本数据类型):
1. number:数字类型 . 整数/小数/NaN(not a number 一个不是数字的数字类型)
2. string:字符串. 字符串 “abc” “a” ‘abc’
3. boolean: true和false
4. null:一个对象为空的占位符
5. undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
引用数据类型:对象(对象类型默认值是null)
typeof 可用来获取检测变量的数据类型
数据类型转换
转换为字符串类型
toString() – 转成字符串
String() – 强制转换字符串
加号拼接字符串 – 和字符串拼接的结果都是字符串
转换为数字型
parseInt( string)函数 – 将 string类型转成整数数值型
parseFloat( string)函数 – 将 string类型转成浮点数 数值型
Number() 强制转换函数 – 将 string类型转换为数值型
js隐式转换(- * /) – 利用算术运算隐式转换为数值型
转换为布尔型
Boolean()函数 – 其他类型转成布尔值
关键字和保留字
关键字
是指 JS本身已经使用了的字,不能再用它们充当变量名、方法名。
包括:break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with 等。
保留字
实际上就是预留的“关键字”,意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不能使用它们当变量名或方法名。
包括:boolean、byte、char、class、const、debugger、double、enum、export、extends、fimal、float、goto、implements、import、int、interface、long、mative、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile 等。
操作符
算数运算符
+ - * / %
浮点数的精度问题
var result = 0.1 + 0.2;//结果是:0.30000000000000004
不要直接判断两个浮点数是否相等
递增和递减运算符
反复给数字变量添加或减去1
使用递增(++)和递减( – )运算符来完成
放在变量前面称为前置递增(递减)运算符
放在变量后面称为后置递增(递减)运算符
比较运算符
两个数据进行比较时所使用的运算符,返回一个布尔值(true / false)作为比较运算的结果
< 小于号
> 大于号
>= 大于等于号(大于或者等于)
<= 小于等于号(小于或者等于)
== 判等号(会转型
!= 不等号
=== 全等要求值和数据类型都一致
逻辑运算符
&& 逻辑与,简称"与" and
|| 逻辑或,简称"或" or
! 逻辑非,简称"非"not
赋值运算符
= 直接赋值
+= -= 加、减一个数后再赋值
*= /= %= 乘、除、取模后再赋值
优先级
流程控制
顺序流程控制
按照代码的先后顺序,依次执行
分支流程控制
根据不同的条件,执行不同的路径代码
if 语句
// 条件成立执行代码,否则什么也不做
if (条件表达式) {
// 条件成立执行的代码语句
}
if else语句(双分支语句)
// 条件成立 执行 if 里面代码,否则执行else 里面的代码
if (条件表达式) {
// [如果] 条件成立执行的代码
} else {
// [否则] 执行的代码
}
if else if 语句(多分支语句)
// 适合于检查多重条件。
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3) {
语句3;
…
} else {
// 上述条件都不成立执行此处代码
}
三元表达式
表达式1 ? 表达式2 : 表达式3;
如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值
switch分支流程控制
循环
for循环
for(初始化变量; 条件表达式; 操作表达式 ){
//循环体
}
初始化变量:通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。
条件表达式:用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。
操作表达式:用于确定每一次循环是否能被执行。如果结果是 true 就继续循环,否则退出循环。
双重for循环
外层循环执行一次,内层循环要执行全部次数
while循环
while (条件表达式) {
// 循环体代码
}
1 先执行条件表达式,如果结果为 true,则执行循环体代码;如果为 false,则退出循环,执行后面代码
2 执行循环体代码
3 循环体代码执行完毕后,程序会继续判断执行条件表达式,如条件仍为true,则会继续执行循环体,直到循环条件为 false 时,整个循环过程才会结束
使用 while 循环时一定要注意,它必须要有退出条件,否则会成为死循环
do-while循环
do {
// 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);
先执行一次循环体代码
再执行条件表达式,如果结果为 true,则继续执行循环体代码,如果为 false,则退出循环,继续执行后面代码
跳出
continue 关键字用于立即跳出本次循环,继续下一次循环
break 关键字用于立即跳出整个循环(循环结束)
总结:JS数据类型分为两大类,即简单数据类型和复杂数据类型。简单数据类型主要有五种:Number、String、Null、Undefined、Boolean;复杂数据类型主要有对象、数据等。主要语法是逻辑运算和循环。