src href url
1 计算机语言: 机器语言(二进制) 汇编语言 高级语言
机器语言和汇编语言主要是对机器设置的
高级语言: c c++ pathon php Go...
2 计算机基础
-
2.1 计算机组成:
硬件: 输入设备 输出设备 CPU 硬盘(永久存储) 内存(暂时性内存)
软件:
1. 系统软件: windows linux macos
2. 应用软件: qq wechat chrome -
2.2 数据存储
- 计算机内部都是二进制0,1表示的 图片文字 都是二进制的形式
- 硬盘内存里面都是二进制数据
-
2.3 数据存储单位
位 bit 一位(1bit)存储的是一个二级制数据0/1 最小的存储单位
字节 Byte: 1B =8b
千字节 kB 1KB=1024B
兆字节 MB 1MB=1024KB
吉字节 GB 1GB=1024MB
太字节 TB 1TB=1024GB
... -
2.4 程序运行
硬盘-----内存条----CPU
cpu的处理速度很快 但是硬盘的访问读取速度很慢 会浪费cpu的性能 所以将需要处理的文件放置在内存中 (内存是电 硬盘是机械)
1. 打开某个程序 先从硬盘中把程序的代码加载到内存中
2. CPU执行内存中的代码
一JavaScript:
JS的作用:
(1) 表单验证;(密码强度验证) js产生的最初目的
(2) 网页特效
(3) 服务端开发(Node)
(4) 桌面程序
(5) App(Cordova)
(6) 控制硬件-物联网(Ruff)
(7) 游戏开发(cocos2d-js)
1.1 javaScript介绍
(1) 简介 :
创始人: 布兰登.艾奇
js是运行在客户端的脚本语言 是前端唯一的脚本语言
通过chrome浏览器的v8 引擎解析 可以实现人机交互 提供逻辑思维(2) 浏览器引擎 :
a.渲染引擎: 用来解析html和css,俗称内核 chrome浏览器的内核blink和老版本的webkit
b.JS引擎: 也成为js解释器,用来读取网页中的JavaScript代码,处理后运行,比如chrome浏览器的V8 (js是高级编程语言--只不过与c语言 Java语言比起来算是弱语言) 逐行翻译解释执行 所以叫做脚本语言-
(3) 组成 :
ECMAScript语法规范+webApis(DOM ,BOM ,api接口)
DOM(Document Object Model) 文档对象模型:
是w3c组织推荐的处理可扩展标记语言的标准编程接口.通过DOM提供的接口可以对页面上的各种元素进行的操作BOM(Browser Object Model) 浏览器对象模型: 是指浏览器对象模型 提供了独立于内容的,可以与浏览器窗口进行互动的对象结构.通过BOM可以操作浏览器窗口,比如弹出窗 控制浏览器跳转 获取分辨率等
BOM是包括DOM的
1.2 js的书写位置:
内联 写在html标签内 对应css的内嵌 引入方式 触发事件=处理函数
⭐区别:不写script内部 写在script标签内 一般写在最后 body结束标签之前
-
外部 写在一个单独的.js文件内 通过script src='' 引入
⭐⭐⭐注意点:
(1) 内部: script代码的书写位置应该在所有的html结构之后 否则调用的元素可能会获取不到--此时html页面还没加载完成 没有对应的DOM节点 浏览器是逐行解析
(我们将 <script> 放在HTML文件的底部附近的原因是浏览器会按照代码在文件中的顺序加载 HTML。遇到script标签 会阻塞文档解析如果先加载的 JavaScript 期望修改其下方的 HTML,那么它可能由于 HTML 尚未被加载而失效。
因此,将 JavaScript 代码放在 HTML页面的底部附近通常是最好的策略。)
(2) 外部: 外部的js <script src>-----</script> 之间书写的代码 不会加载解析会被忽略
1.3 注释: 注释的内容是不会解析的
- (1) 单行注释 // 快捷键 ctrl+/
- (2) 块注释 /* */ shift+alt+a
1.4 结束符
a. 代表语句结束
b. ';' 英文状态下
c. 建议写 也可以不写
d. 换行会被识别为结束符
1.5 输入输出
输入: prompt() 提示框 🚩 获取到的是字符串
输出:
- alert() 警示框 会阻塞浏览器的执行 🚩并且只有一个参数
- document.write(); 向html页面输入内容 多个写入的内容以','分隔
- console.log() --clg 控制台输出
⭐⭐⭐alert和prompt 会阻塞线程 不会继续向下执行
快捷键: win+v 查看电脑剪切板
二 变量:
变量概述
变量的使用
变量的语法扩展
变量命名规范
变量交换案例
变量在内存中存储规则
2.1 变量----计算机中用来⭐存储数据⭐的容器
-
变量实质
内存:计算机中存储数据的地方 相当于一个大空间**变量**: 程序在内存中申请的一块用来存储数据的空间
2.2 变量的创建方式
声明变量: 关键字--let 变量名
var/let-----变量的声明 是js的一个关键字,用来声明变量 在内存中划分一块空间.
age-----变量名 通过这个变量名 访问空间 找到内部存储的数据变量赋值 '=' 将等号右边的内容赋值给左边的表达式
** 数据初始化:**声明一个变量并且赋值 我们称之为变量初始化变量修改 /更新变量
可以一次声明多个变量','隔开即可
🚩let和var 创建变量的区别:
- var和let创建的变量 都可以提升变量的声明 但是var可以给为赋值的变量初始化为undefined 但是let不可以
- var声明的变量可以先声明后定义 但是let创建的变量只能先声明定义后才可以使用 let的变量作用域范围从let位置开始到'}' 结束的位置
名词解释:
⭐关键字: 系统内部已经定义好了的词汇; 有特殊作用 let var if
⭐字面量: 所见即所得 的🚩🚩常量🚩🚩 ----可以得知 数据的类型 和 值的大小
2.3 变量实质
- 内存:计算机中存储数据的地方 相当于一个大空间
-
变量: 程序在内存中申请的一块用来存储数据的空间
2.4 变量命名规范:
- 字母数字下划线 _ $符号组成
- 不能使用关键字作为变量名 let var if else switch等
- ⭐不能以🚩数字🚩开头⭐ 数字开头识别有误区 不确定是数字或者变量
- 大小写敏感 -------app和App是两个变量
- 驼峰命名法 userName 第一个单词首字母小写
语义化 + 后面单词首字母大写
⭐ 额外注意点:
clg(1,2,3)
d.w(1,2,3)
alert(1) 不能写多个
3 数据类型:
🚩为什么要划分数据类型:
不同类型的数据占据的内存的大小不同,主要还是合理化利用内存空间
⭐⭐⭐ js是弱语言 在声明时没有说明变量的数据类型 只有在赋值时才知道;
3.1分类:
(1) 基本数据类型 : 默认值
Number 数字 0
String 字符串 ''
Boolean 布尔 false
Undefined 不确定类型 undefined
Null 空 null( 2) 引用数据类型 :
数组 --Array
对象 --Object
函数 --function
3.2 五种基本数据类型:
-
数字: 包括整数和小数
数据型的 三个特殊值 1 Infinity:代表无穷大,大于任何数值 2 -Infinity,代表无穷小的 小于任何数值 3 NaN: not a number,代表一个非数值 4 isNaN()----方法 用来验证是否为非数字类型 如果不是 返回true 如果是数字 返回false
-
字符串: 单引号或者双引号或者`包裹的都是字符串; 字符串是字面量常量
a 引号需要成对出现 嵌套规则: 内单外双 / 内双外单 b 字符串转义符 字符串转义符 转义符都是以'\'开头 包裹在引号里 符号 功能 \n 换行符 n表示的是newline \\ 斜杠 \' 单引号 \" 双引号 \t tab缩进符 \b 空格 b是blank的意思 c 有些表单的注册页面对用户的输入内容有长短限制 例如:用户名的长度 密码的字数等等 所以这里需要用到字符串的length属性 来获取长度的值 str.length就是 ''中包裹的字符串的长度 d 字符串拼接符 与Java一样 任何数据与字符串拼接返回值都是字符串类型 只要'+'左或右出现字符串 这个符号就是起到字符串拼接的作用 返回到也是一个字符串 ######JavaScript 定义反斜杠加上字符可以表示字符自身
❗❗❗ 模板字符串
包裹字符串${}
{存放变量}--指代变量;
console.log(用户${uname1}\n申请${hobby}课程会员意向:${intention}
);
⭐模板字符串可以解析换行和空格
布尔类型: 用来表示真假---真 true 假 false;用来做条件判断
未定义类型: 当变量声明但是没有赋值时 变量的值类型是undefined
null 空类型;
null一般是用来存放对象:尚未创建的对象 但此时对象还没有创建好 既可以用null代替
⭐两者的区别 : undefined 未初始化 不能确定数据类型 没有内存空间
null 已经对变量进行赋值了 但是数据类型是null的
⭐⭐⭐ 变量:声明
不声明 不定义 ---------使用报错
不声明 只赋值 ---------可以使用
3.3 检测数据类型: typeof 变量
🚩 js是弱语言 ,变量声明后 未赋值之前是不能确定数据类型的,所以需要检测数据类型
注意: typeof后面不要() 不要当作方法使用
3.3.2 字面量:
字面量是源代码中一个固定值的表示法 通俗来说 就是字面量表示如何表达这个值
- 数字字面量: 8,9,10
- 字符串字面量: '我是救世大英雄'
- 布尔字面量: true false##### #####3.4 数据类型转换:把一种类型转换为另外一种类型
(1). ⭐使用prompt/input表单获取到的数据类型 都是字符串类型的 只能拼接无法做运算, 所以需要数据类型转换;
-
隐式转换: 系统内部自动进行数据转换;
- '+' 字符拼接; 只要 + 的任意一侧出现了字符串 运算的结果就只能是字符串
- '- / *' 除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型
'+' +号作为正号解析可以转换成Number +prompt('输入数据吧'); ----typeof就是number
显示转换:
Number(数据):
a. 转换为数字类型(整数/小数);
b. 如果数据中存在非数字类型 转换结果为 NaN
c. NaN也是数字类型的一种 表示为非数字 typeof 结果也是Number
parseInt(string) 将String转换为int整数类型(一刀切)
parseFloat(String) 将String转换为float浮点类型
Number(变量)强制转换函数 将string类型转换为数值型
⭐⭐⭐parseInt(),parseFloat()做数据转换时 实参以数字开头 但是含有非数字内容 会将数字部分转换为整数 但是如果一开始就是非数值 值就是NaN;
数据类型的转换
把一种数据类型转换为其他数据类型
常用的三种转换方式:
转换为字符串类型
转换为数字类型
转换为布尔类型
a "+"拼接符 也叫做隐式转换
b toString()方法 variable.toString()
c String() 强制类型转换 String(variable)//页面解释这里用的就是String constructor
//类似于java中的头String()方法和String()构造方法
3.3 转换为布尔类型
Boolean(变量)
代表空,否定的值会被转换为false, "" 0 null undefined NaN;
其余的值则都会是true
构造大法好 String(vari) Number(vari) Boolean(vari)
拓展:
解释型语言: js 运行时及时进行解释 煮火锅 栓一个吃一个
编译型语言: java 代码执行之前编译 全部菜炒完上桌才能吃
区别: 在于代码执行过程中给翻译的时间不一样
标识符: 开发人员为变量函数起的名字
关键字: js已经用了 不能再使用
保留字: 预留的关键字 现在还没用 但是以后可能会用