JS构成
- ECMAScript:语言的核心(语法)
- DOM:(文档对象模型)操作标签
- BOM:(浏览器对象模型)操作浏览器窗口
1.JS引入的几种方式
- 内嵌式(两种方式)
- 写在head里要,需要加入代码
window.onload = function ()
功能:执行所有代码后在执行引入代码
-
- 写在body里面,
注意:引入的代码行要写在被选元素后边
-
- 代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 内嵌式 -->
<!-- <script>
window.onload = function () {
var box = document.getElementById("box");
console.log(box);
}
</script> -->
</head>
<body>
<!-- 引入JS -->
<!-- 第一种:内嵌式 -->
<div id="box">1</div>
<script>
var box = document.getElementById("box");
console.log(box);
console.log(111111);
//调试代码方式(如果要输出多个,用逗号隔开)
console.log(111111,222);
</script>
<!-- 第三种:通过事件引入 -->
<!-- <div id="box" onclick="alert(1111)">11111</div> -->
</body>
</html>
<!-- 第二种:外链式 -->
<!-- <script src="./index.js"></script> -->
- 外链式
<script src="./index.js"></script>
注意:要写在被选元素后边
- 行内式(通过事件引入):
<div id="box" onclick="alert(1111)">11111</div>
引入后点击被选元素会出现弹框
2.命名规范
- 区分大小写
- 数字、字母、下划线、$(不能是数字开头)的组合
- 不能是关键字和保留字
- 关键字:代表特殊含义和功能的名字,例如: var、function、break、else、new、var、 case、 finally 、 return、 void 、 catch 、for 、switch 、 while 、 continue、this 、 with 、default 、 if 、 throw 、 delete 、 in 、 try 、do 、 instranceof、 typeof
- 保留字:现在还不是关键字,以后可能会是关键字,做后备使用,例如:abstract 、 enum 、int 、 short 、 boolean 、export 、interface、 static、 byte 、extends 、 long 、 super 、 char 、 final 、native 、synchronized 、 class 、float 、 package 、throws 、 const 、goto 、private 、transient 、 debugger 、 implements 、protected 、 volatile 、 double 、import 、public
- 命名要有语义化,可以参照以下几种方式:
-
- 小驼峰命名法:myName (除了第一个单词,往后的每一个单词首字母都要大写)
- 大驼峰命名法:MyName (每一个单词的首字母都要大写)
-
- 下滑线命名法:my_name (每一个单词都要用下划线连接)
3.js变量
- 利用var声明并定义变量,例:
<!-- 引入JS -->
<script>
// 声明一个变量number1
var number1
// 定义(赋值)
number1 = 1000;
console.log(number1);//控制台查看当前元素
//重新定义(赋值)
number1 = 2000;
console.log(number1);
// 或者直接声明加定义
// var number1 = 1000;
//如果想声明多个变量
// 第一种
var num1;
var num2;
//第二种
var num1,num2;
//声明加定义
//第一种
var name1 = "zhangsan";
var name2 = "zhangsa";
//第二种
var name1 = "zhangsan",name2 = "lisi";
</script>
4.原始值类型(基本数据类型/值类型)
1.Number 数值
- 整型(整数)
- 浮点(小数)
- 直接写小数
- js中数值范围
- JS中的Number数据类型只能安全的表示在-(253-1)到(253-1)即(-9007199254740991)到 9007199254740991之间
- Number.MAX_SAFE_INTEGER:最大安全数(js能够识别的最大整数)超过了JS无法精准计算。表示方法:
console.log(Number.MAX_SAFE_INTEGER);
- 特殊数值NaN
- NaN是一个number类型,是一个数值,表示非有效数字
- 特点1:与任何数值进行任何运算结果都是NaN
- 特点2: NaN与任何数都不相等,包括自己
- 与数值相关运算符
-
- 相加
-
- 相减
-
- 相乘
- / 相除
- % 取余(模)
- 相关函数
- Number() JS内置的一个方法
-
- 代码:
console.log(Number('12.5')); - 字符串转换为数字(如果字符串里面是一个有效数字,正常转换,如果不是有效数字,则转换为NaN)
- 代码:
-
- 空串转换为Number为0
- 布尔值(boolean)转换规则
-
-
- ture(1)
- flase(0)
-
-
- null转换为0
- undefined转换为数字null
-
- symble();不能转换数字,报错 Connot……
- parseInt/parseFlase:同样是把其他类型转换为number类型的
-
- parseInt:整数
-
-
- 代码:
console.log(parseInt('12px24')); - 字符串里的值,从左往右检索,如果遇到非有效数字停止查找(找的是整数)
- 代码:
-
-
-
- 如果第一个就是非有效数字,那结果就是NaN
-
-
- parseFloat:小数
-
-
- 特点同上不过检索的是小数(只能识别一个小数点)
-
-
- 检索时“首尾”省略号会忽略
- toFixed:保留小数点后边n位(最后的结果是一个字符串)
var num3 = 0.115444444;
num3 = num3.toFixed(3);
consoxle.log(num3);
或者
console.log(num3.toFixed(2));
- isNaN():判断一个值是否是有效数字
-
- ture(非有效数字)
- false(有效数字)
-
- 代码:
console.log(isNaN(111));
- 代码:
2.String 字符串
- 定义字符串
- 在JS中使用单引号、双引号、反引号包起来的都是字符串
- 相关函数
- String()
-
- 代码:
string(111)结果'111'
- 代码:
3.Null 没有
- 定义:null表示没有,即该处没有值
- 获取DOM获取不到的时候
4.Undefind 未定义变量
- 定义了变量但没有给值,显示underfined
- 对象属性名不存在时,显示underfined
- 函数没有写返回值,即没有写return,显示underfined
- 写了return,但没有赋值,显示underfined
5.Boolean 布尔值(值为false/ture)
- 值:
- false 错误(假/否/关)
- ture 正确 (真/是/开)
- 数字或字符串转为布尔值
- 0、NaN、空字符串("")、null、underfined转换为false
- 其余都是true
- 一个!是取反,两个!相当于转换为布尔值。例:``console.log(!!1);
console.log(!1);
6.Symble 唯一值
Symble("")里边是字符串时候为准确输出,不是字符串的时候输出数字太大的时候不准确。
7.BigIon 大数
-
定义:管理超过安全数值的数字
-
ES6中提供的新数据类型