## 什么是javascript
1. 网页:html结构,css样式,js行为
2. javascript的组成:行为:在浏览器中,点击网页
- 浏览器:BOM:浏览器对象模型,用来提供浏览器的相关操作
- 举例:弹出框
- 网页:DOM:文档对象模型,用来提供网页的相关操作
- 举例:点击div,修改样式,或内容
- 语法规范:ECMAScript,规定了在浏览器中如何操作网页
- 如何弹出 框
- 如何选择div
- 如何修改样式
- 如何修改内容
## 书写位置
1. 行内:写在html的开始标签单词后,行为属性绑定js
2. 内部:写在script标签内
3. 外部:写在独立js文件内,在html文件内使用script的src引入js文件
## 打印语句
1. 打印:将程序的执行结果,呈现给用户
2. alert()打印到弹出框
3. document.write()打印到页面
4. console.log()打印到控制台
## 数据类型
1. 数据类型:为了计算机能更好的存储和识别及使用不同的数据
2. 根据存储方式划分:
- 数据有两部分组成:存储地址,数据值
- 基本类型:字符,数值,布尔,null,undefined
- 地址就是值,值就是地址
- 复杂类型:对象,函数
- 地址是地址,值是值
3. 根据自身特点划分:
- 字符:string:被引号(单',双",反`)包裹,任何数据只要被引号包裹,都是字符
- 表示表示数据,没有任何功能存在,只是字面含义(字面量)
- 数值:number:0 1 2 3 4 5 6 7 8 9 NaN
- 布尔:boolean:true真,false假
- 对象:object:花括号或中括号标志,数据的打包形式
- 花括号:{width:100, height:200}
- 中括号:[100, 200, 300]
- 函数:function,功能的打包形式
- 如:function xx(){ 要打包的代码 }
- 如:function(){ 要打包的代码 }
- null:null,空,地址不存在,值不存在
- 手动设置
- undefined:undefined,空,地址存在,值不存在
- 变量声明了,但未赋值
- 数据类型的检测
- 关键字:typeof
- typeof 要检测的数据
- typeof(要检测的数据)
- typeof无法区分null和对象
## 变量
1. 用来存储数据的容器
2. 创建(声明)
- 关键字:var
- var 名字
- var abc;
3. 赋值
- 赋值运算符:=
- 左侧:必须是变量
- 右侧:可以是数据,也可以是其他变量
- 功能:将等号右侧的数据存储到左侧的变量中
- abc = "hello"
4. 其他写法:
- var a = 10;
- var b, c=20, d="hello";
5. 变量的命名规范
- 只能使用字母,数字,下划线,$组合
- 不允许使用数字开头
- 不允许使用关键字或保留字
- 尽量语义化:词必达意
- 加前缀
- 以数据类型单词的首字母做前缀
- 以数据的作用名加前缀
- 以作者名加前缀
- 组合单词时,建议使用驼峰式
- 大:从第一个单词的首字母大写
- GoodsDetail
- 小:从第二个单词的首字母大写
- goodsDetail
- 也可以使用下划线区分单词
- goods_detail
## 数据类型的转换
1. 为什么要转换
- 得到的数据不是所需的类型
2. 转换形式
- 显示(强制)转换
- 隐式转换【未讲】
3. 显示(强制)转换方式
- 其他转字符
- 方法
- String(xx)
- 可以处理所有数据
- xx.toString()
- 一般用于处理除了null,undeifned,数值之外的数据
- xx.toFixed(n)
- 四舍五入保留n位小数
- 一般用于处理数值
- 规则:
- 数值,布尔,函数,undefined,null:直接套引号
- 花括号对象:"[object Object]"
- 中括号对象:将中括号替换成引号
- 其他转数值
- 方法:
- Number(xx)
- 可以处理所有数据
- 严格转换
- parseInt(xx)
- 一般用来处理字符和数值
- 非严格转换
- 转成整数,不能识别小数点
- parseFloat(xx)
- 一般用来处理字符和数值
- 非严格转换
- 转成小数,能识别小数点
- Math.round(xx)
- 一般用来处理字符和数值
- 四舍五入保留整数
- 严格转换
- 规则:
- 花括号对象,函数,undefined:NaN
- true为1,false为0
- 字符转数值:
- 严格转换:不允许出现非数字,只要出现非数字,就是NaN
- 非严格转换:从左向右依次检测,能转则转,不能转就停止,第一位就不能转,直接NaN
- 数组(中括号对象):空数组为0,有且只有一个数字数据,直接转成该数值,有且只有一个undefined或null,转成0,否则NaN
- null为0
- 其他转布尔
- 方法
- Boolean(xx)
- 规则
- 非空字符为true,空字符为false
- 非0和NaN为true,0和NaN为false
- 复杂数据(花括号对象,中括号对象,函数)都为true
- null和undefined都是false