1、javascript组成
ECMASctript(规范) + BOM(浏览器对象模型) = DOM(文档对象模型)
2、js书写方式
- 行内式
- 内部
<script></script>
- 外部
<script src="js文件地址"></script>
3、js注释
- 单行注释 //
- 多行注释 /* */
4、js输出语句
- 警告框:alert( )
- 控制台输出 console.log( )
- 页面输出 document.write( )
- 带确定取消按钮的弹出警告框 confirm( )
- 能够输入内容的弹出框 prompt( )
5、变量和变量声明
var
- 使用 var 关键字
- 声明一个变量并且赋值 var a = 10
- 声明一个变量不赋值 var b
- 声明多个变量 并且赋值 var a = 1, b = 2,c = 3
- 声明多个变量不赋值 var a,b,c
let
- 使用let 关键字
- 声明一个变量可以先不赋值 let a
const
- 使用const关键字
- 声明一个常量必须赋值 const a = 10
var 、let、const之间的区别
- var
- 声明的是变量
- 允许重复
- 有预解析
- 不受所在的 {} 所限制使用范围
- 可以被修改
- 可以 先声明不赋值
- let
- 声明的是变量
- 不允许重复
- 没有预解析
- 受所在的 {} 所限制使用范围
- 可以被修改
- 可以 先声明不赋值
- const
- 声明的是常量
- 不允许重复
- 没有预解析
- 受所在的 {} 所限制使用范围
- 不能被修改
- 必须赋值
6、变量的命名规则和规范
规则、官方定义,你必须遵守
- 1、只能由 $ _ 字母 和数字组成
- 2、不能以数字开头
- 3、不能使用关键字和保留字
- 4、变量名中间不能有空格隔开
- 5、不能超过 255 个字符
- 6、不能使用中文
- 7、js严格区分大小写
规范、大家都这么用,建议也这么用
- 1、语义化
- 2、尽量使用驼峰命名法 var bigNum
7、数据类型
- 数值型 number NaN属于数值型
- 字符型 string
- 布尔型 boolean
- 未定义型 undefined
- 空型 null
- 对象 object (引用类型 包含:function、array、data)
- symbol
- bigInt
8、检测数据类型
-
typeof:能检测基本类型
-
instanceof: 检测一个对象是否为构造函数的实例化对象,返回布尔值
-
constructor: 检测对象上的属性,指向构造函数
-
Object.prototype.toString.call: 可以精确的检测引用数据类型
-
9、基本数据类型转换
-
转为数值型
- Number( ) 把一个东西当做一个整体进行转换,只要里面有非数字就不能
- parseInt( ) 从左到右依次识别,不认识小数点,小数点后面的不会进行转换
- parseFloat( ) 从左到右依次识别,只识别一个小数点,不识别字母
-
转为字符型
- String( )
- toString( )
- +拼接字符串 + 什么时候是运算作用,什么时候是拼接作用,两边都是数值型就是运算,两侧只要有一个是字符型就是拼接字符串的作用
-
转为布尔型
- Boolean( ) 只有五个特殊的数据,转换出来是false 其他都是true 1、0 2、空字符串 “” 3、NaN 4、undefined 5、null
10、运算操作符
- 算数运算符 + - * / %
-
一元运算符 ++ —
++前置先自加,后运算 ++后置先运算,后自加
-
比较操作符 > < >= <= == === != !==
- == 只判断两侧的数据值是否相等,不会判断数据类型
- === 不仅判断两侧的数据值是否相等,还判断数据类型是否相等
-
赋值操作符 = += -= *= /= %=
-
逻辑操作符 &&(与) ||(或) !(非)
- && 两侧都要为 true 只要一个为 false ,就返回 false
- || 两侧有一个为 true 就返回 true
- && 两侧如果不是布尔值是其他数据类型也是从左往右开始识别如果这个值转换为布尔值为 true那就继续往后识别直到遇到一个转换成布尔值为false 的那就不会再继续往后识别﹑并且把这个值作为结果返回 console.log(1 && 0) //
- 8& 两侧如果不是布尔值是其他数据类型也是从左往右开始识别如果这个值转换为布尔值为 true 那就继续往后识别﹑如果所有的数据转换为布尔值都为 true那就把最后一个数据的值作为结果返回
保留小数 toFixed( ) 会把数据转为字符串