JavaScript
编程: 就是让计算机解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程
计算机程序: 所执行的指令集合,通过计算机程序来命令计算机,任何能执行代码的设备都是计算机
计算机语言: 机器语言 汇编语言 高级语言 计算机最终执行的都是机器语言
编程语言: 类似于人的语言 一系列规定的格式词汇向计算机发出命令
汇编语言: 本质和机器语言相同 指令和英文缩写的标识符
编程语言和标记语言的区别
标记语言m:是被动的 是被读取的那一方
高级语言s:主动的 读取的那一方 有很强的逻辑性和行为
数据存储单位
每个单位之间相隔1024 例外1字节是8位
浏览器组成 √
渲染引擎 : 解析html和css 称内核 用的多的是blink和webkit
js引擎:称js解释器 读取页面中的js代码处理 比如chrome的v8解释器
JS作用
- 表单动态校验(密码强度检测):JS 产生最初的目的
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(Ruff)
- 游戏开发(cocos2d-js)
JS执行
报错之后后面内容不执行
JS组成 √
ECMAScript
是ecma规定了js的标准的语法
DOM 文档对象模型
可以对页面上的各种元素进行操作(大小、位置、颜色等)
BOM 浏览器对象模型
可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等。
初始JS
基本的js语法
行内式
<input type="button" value="点我试试" onclick="alert('Hello World')" />
内嵌js
<script>
alert('Hello World~!');
</script>
※外部js文件
<script src="my.js"></script>
JS注释
作用:给代码写标记说明的
快捷键 多行:shift+alt+/
单行:ctrl+/
※输入输出语句
方法 | 说明 | 归属 |
---|---|---|
alert | 弹出警示框 | 浏览器 |
console.log | 控制台打印信息 | 浏览器 |
prompt | 弹出输入框 可输入信息 | 浏览器 |
※变量
是一个存储数据的容器
// 定义变量
var age
// 变量初始化 并打印
var age = 18
console.log(age)
变量初始化: 初始化就是重新给其赋予一个新的数值
- var age=’ ‘; 声明变量并赋值
- console.log(age); 后台输出变量值
- var:使用该关键词计算机会自动分配内存空间
- age:是变量名 需要通过变量名来访问分配的空间 类似于门牌号
- ’ ':单引号内是赋值的数值 通过输出来导出数据
变量更新: 变量赋值以最后一次为准
赋值综合写法: 赋值综合用逗号隔开 省略var
全值变量: 不声明 只赋值 :age = 18
※命名规范
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nCFdETBx-1577928007749)(9.1_JavaScript.assets/1567320408586.png)]
大驼峰:单词首字母都大写
小驼峰:第一个单词首字母小写 其余大写
不赋值不定义能输出 name
小结
数据类型
作用: 不同的数据类型所占存储空间不同 为了便于规定各种数据类型所占空间 所以需要数据类型
注意点: js是一种弱类型/动态语言 js 的变量数据类型只有程序在运行过程中根据值来确定的 后覆盖值的数据类型不同 以最后覆盖的值的数据来定
扩展: ts 一种以后用得上的语言
注:以后一旦遇到引用数据类型时 立马要想到的是一小块内存地址 指向一大块内存
※数字型 Number
可以包含整数、小数
var age = 21; // 整数
var Age = 21.3747; // 小数
※数字型的进制:
常见进制有二进制、八进制、十进制、十六进制
// 1.八进制数字序列范围:0~7
var num1 = 07; // 对应十进制的7
var num2 = 019; // 对应十进制的19
var num3 = 08; // 对应十进制的8
// 2.十六进制数字序列范围:0~9以及A~F
var num = 0xA;
八进制: 数字前加0 等于八进制 0~7 逢八进一 要在程序里面显示8 就等于010 因为8进制没有8 所以直接进1 变成了10 前面加0 变成了010
十六进制: 十六进制范围前加0x 例:0xA
js中数值中的最大值和最小值
最大值: alert(Number.MAX_VALUE); // 1.7976931348623157e+308
最小值: alert(Number.MIN_VALUE); // 5e-324
数字型的三个特殊值
一般在控制台打印出现
alert(Infinity); // Infinity
alert(-Infinity); // -Infinity
alert(NaN); // NaN
- infinity 代表无穷大 大于任何数值
- infinity 代表无穷小 小于任何数值
- NaN 代表非数值
判断是否非数字 isNaN()
返回值是布尔值
例:
var usrAge = 21;
var isOk = isNaN(userAge);
console.log(isNum); // false ,21 不是一个非数字
var usrName = "andy";
console.log(isNaN(userName)); // true ,"andy"是一个非数字
※字符串 string
-
单引号包的都是字符串 包括包裹数字 单双引号都可用 推荐单引号
-
嵌套关系时 外单内双 或者外双内单
字符串特殊字符/转义符
作用:为了在html显示ASCII码 显示一些特殊字符 比如单引号这种在页面中展示这时就会用到转义符 转义符以\开头
※字符串长度
length 获取整个字符串长度 (数组长度也是length获取 )
var strMsg = "我是帅气多金的程序猿!"
alert(strMsg.length); // 显示 11 表示字符长度11位
※字符串拼接
用+拼接 字符串和其他类型相拼接 最终显示是字符串
字符串 可以拼接
- 字符串+数字也能拼接 = 字符串型+数字的字符串
- 数字型+数字型可以相加
- 字符串+变量可以字符串和变量值相连
口诀:数值相加 字符相连 变量引引加加
字符串空格会保留 有多少空格保留多少 html只保留一个空格
布尔型 Boolean
-
布尔类型只有两个值:true 和 false
-
其中 true 表示真(对),而 false 表示假(错)
-
布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。
布尔值为false的六种情况
- 未定义 undefined
- 为0
- 为null 空时
- 自身为false 但字符串的(’false‘)是为true的
- nan 非数值
- 空字符串时
简单数据类型 undefined 和 null
-
变量声明未给值 = 未定义的undefined
-
undefined 和数字相加是nan 不是一个数值了
-
null 空 (对象 object) 和数值相加等于数值
两者的区别:
null 是一个表示”无”的对象,转为数值时为 0;
undefined 是一个表示”无”的原始值,转为数值时为 NaN。
定义变量未给赋值时 就是undefined
检测变量数据类型 typeof
语法:
var num = 18;
console.log(typeof num) // 结果 number 数字型
特殊类型object
Object 类是类层次的根类 每个类都把Object作为一个父类 是所有类的基类
其中大写的是Object对象名称 object小写的是方法返回值中格式默认的
字面量
从表面就能看出数据类型
数字类型是蓝色 字符串是黑色
数据类型转换
为什么要进行数据类型转化:因为需要进行算法运算 需要类型相同才能运算
共用语法:
字符串转换
console.log(num + '');
数字型转换
parseInt(变量) 可以把 字符型的转换为数字型 得到是整数
console.log(parseInt('3.94')); // 3 取整
console.log(parseInt('120px')); // 120 会去到这个px单位
parseFloat(变量) 可以把 字符型的转换为数字型 得到是小数 浮点数
console.log(parseFloat('3.14')); // 3.14
console.log(parseFloat('rem120px')); // NaN
转换字符串型
- toString() 和 String() 使用方式不一样。
- 三种转换方式,我们更喜欢用第三种加号拼接字符串转换方式, 这一种方式也称之为隐式转换。
字符串转换成数字型
- 注意 parseInt 和 parseFloat 单词的大小写,这2个是重点
- 隐式转换是我们在进行算数运算的时候,JS 自动转换了数据类型
转布尔型
var a = 1
console.log(Boolean(a)) // true
- 代表空 、否定的值 全部会转换为false 其余为true 为空的值有:0、nan、null 、undefined
扩展 √
翻译器翻译?: 两者的翻译的时间点不同
编译:代码执行前进行编译 生成中间代码
解释:运行时进行及时解释 并立即执行(当编译器以解释方式运行时 也称为解释器)
关键字: js本身已经使用的单词 保留字 将来可能成为关键字的词 不能作为变量名方法名来使用
报错
已经引用 没有被定义