组成
ECMAScript
JavaScript 的核心,ECMAScript 是一套标准,定义了一种语言的标准与具体实现无关。
BOM
浏览器对象模型,一套操作浏览器功能的API,通过BOM可以操作浏览器窗口,如弹窗,跳转等。
DOM
一套操作页面的API,DOM可以把HTML理解为文档树,通过DOM提供的API可以对树上的节点进行操控。
编写位置
外部样式
js可以独立出来变成外部js文件,在html文档中,在头部用script
标签导入。
行内元素
在标签中写,如:<button onclick="alert('行内位置')">点击</button>
,不退推荐使用,不便维护。
内部样式
通常在body
标签的尾部,适合代码量较小。
<body>
<div>
<p>1111</p>
</div>
<script type="text/javascript">
document.write("Hello")
</script>
</body>
输出语句
alert('Hello')
;打开浏览器时,会弹出提示弹窗。
console.log('Hello')
;在控制打印“控制台”。
docunment.write(‘Hello’);在body页面中显示.
输入语句
prompt(“输入框”);弹出一个输入框,可输入数据。
confirm(“确定吗?”);弹出确认框;可以将其赋值,输出布尔值尝试一下。
代码运行原理
数据类型
分为值类型和引用类型;
检查数据类型可以使用console.log(typeof 数据)
,会在控制台中打印数据是什么类型。
对于整数,字符串,未定义,空值,false转化为布尔值是都是false,只有true
转化为布尔值时是true。
值类型
有2个类型是新增的,
BigInt:大整数类型,我们理解为比整数类型范围更大,解决了整数溢出的问题,定义BigInt类型时,在整数后面添加字母n,ES2020引入。
Symbol:独一无二的值,字面意思,ES6新增。
还有Boolean(布尔),Null(空),undefined(未定义),Number(数字),String(字符串)。
以上数据类型,是存储在栈内存中。
引用类型
有Object(对象),Array(数组),RegExp(正则),Date(日期)。
以上数据类型存储在堆栈内存中。
隐式转换
当不同数据类型进行运算,会自动转换成相同类型;
如:
console.log('100' - 10) //90
console.log(1 + true) //2
console.log( + '10') //10
console.log('1' + true) //'true'
console.log(!1) //false
console.log(!undefined) //true
Number 特殊值
Infinity:无穷大。-Infinitiy:负无穷大。
Infinity其本身还是数字,为1e308。
由于内存的限制,所有最大值(Number.Max_VALUE)和最小值(Number.MIN_VALUE)。
等号操作符
这里解释一下“=”;
=
是赋值;
==
是判断值是否相同,返回布尔值。
===
也是判断值,但它需要数据类型也要一样;
console.log("1" == 1) //true
console.log("1" === 1) //false