js 部分
js 是一个面向对象语言,也是解析语言
js 的天然运行环境是浏览器
js 存在兼容性问题,因为每个浏览器对js 的解析程度不同
js 作用,实现浏览器和用户的交互,以及动态样式的交互
变量是可变得量 可变指的是指可变
var 是关键字在 作用 声明变量
xxx 是变量名 变量名一经声明就不可以改变 但是值可以发生改变
= xxx 变量所赋的值
变量命名规范
1:可以是用驼峰式命名liuChengJian 可以使用 只读下划线特殊字符命名
2:不能使用中文:其他语言命名
3;不能使用js中关键字进行命名:window name docoment … 关键字包括api 以及js内置对象
首字符必须是字母、下划线或美元符号。
余下的字母可以是下划线、美元符号、任意字母或者数字。
变量名不能是关键字或保留字。
变量名区分大小写。
变量名中不能有空格、回车符或其他标点字符。
为了符合编程规范,推荐使用驼峰式命名方式:当变量名由多个英文单词组成时,第一个英文单词全部小写,以后每个英文单词的第一个字母大写。
js 基本数据类型
1.数值型 Number 有NaN NaN 不能用来比较大小
2.字符串 String 只要有英文引号
3.布尔类型 loolean 两个值 true false
4.null
5.undefined
隐式转化
总结:凡是存在大小比较 不论是什么数据类型,都将会先转化为数值型Number 在进行比较
1.字符串转数值型
- 任何非数字字符串 转化为 number 都是 NaN
- 数字字符串 转化 number为数字
2.布尔类型转化数值型 - true 为1 false 为0
3.null 转化数值为0
4.undefined 转化数值NaN
总结 只要条件比较 数据转化出现NaN 最后返回结果都是 false
表达式
1.表达式 = 运算符+操作数据
2.凡是表达式就会返回结果(函数除外)
3.变量只保存数据,当变量赋值为表达式时,变量存储的是,表达式返回结果
变量赋值
有一个var才会定义一次变量 var 一个变量 就会在计算机内存中占据一个位置 而从新赋值侧不会重新占据位置
一个变量保存一个数据
变量的值以最后一次赋值为主
运算符
运算符 加 数据(操作符)形成表达式 最后会返回一个结果
运算符优先级
小括号>算数运算符>比较运算符>逻辑运算符>赋值运算符
算术运算符
+、-、、/、%、++、- -
数学运算符
= - * / %
比较运算符
/ >、<、>=、<= 、、=、!=、!==
== 判断左右两边的数据大小是否相等,不同数据类型的判断 存在引式转化
引式转化 将不同的数据转化为相同的数据类型 在进行比较
=== 全等 即判断数据大小也判断数据类型是否相同
逻辑运算符
&& 、左右两边都未真 返回 true
|| 、
多个条件中 只要有一个为真 返回true
! 取反
赋值运算符
= 、+= 、-=、=、/= 、%=
增量
x++ 先赋值后运算,没有将运算结果输出
++X 先运算后赋值,输出运算结果
普通对象
js 中对象数据存在形式 key:value 键值对
key 表示对象的属性
value 表示属性的值
属性是不可变的 值是可以改变的
每个属性都有它的作用,具体作用程度有值来决定
对象中属性都是字符串类型 值可以为任意数据类型
对象语法结构{key:value,key:value}
创建对象
通过构造函数Object()创建普通对象
new 作用 实例化对象
new 构造函数() —>实例化对象
构造函数可以是js自带的 可以是我们自定义的
对象增与取
对象增加key:value
1.如果是构造函数创建对象,可以通过传参形式增加数据
2.打点添加属性
对象取值
1.获取对象中属性中的值
2.打点取值,前提对象中有这个属性 如果没有这个属性则是添加
3.语法object[“属性”]【有且仅右获取值】得作用 如果有这个属性则会获取到值 如果没有这个属性则返回undefined
4.获取到值如何处理 1.要么直接使用 2.要么变量接收值 保存
注意 取值最精准的就是[]
对象值得更改
1.先获取 在重新赋值
总结 【最后一个点】左边的一律是对象 右边为任意数据类型
对象增加key:value
1.如果是构造函数创建对象,可以通过传参形式增加数据
2.打点添加属性
对象取值
1.获取对象中属性中的值
2.打点取值,前提对象中有这个属性 如果没有这个属性则是添加
3.语法object[“属性”]【有且仅右获取值】得作用 如果有这个属性则会获取到值 如果没有这个属性则返回undefined
4.获取到值如何处理 1.要么直接使用 2.要么变量接收值 保存
注意 取值最精准的就是[]
对象值得更改
1.先获取 在重新赋值
总结 【最后一个点】左边的一律是对象 右边为任意数据类型
布尔对象
Boolean()作用,将其他类型数据转化为布尔类型,构造布尔对象
------> 参数,待转化的数据
注意 true false 严格区分大小写
字符串 非空字符 ---->true 空字符—>false
数值型 非0 ---->true 0orNan ---->false
对象 obj/arr—>true null—>false
日期对象
日期对象中所有的API 必须先创建日期对象 在使用API
1.创建日期对象 new Date()Date() 作用创建日期对象
2.getTime()时间戳具有唯一性 时间戳是当前时间的毫秒总数
3.1秒1000毫秒
4.时间戳具有唯一性
year年 mounth月 day日 hour时 m分 s秒
window是js的最大的对象
转义字符
转义符号
能够使符号变为文本效果,没有特殊效果
数值型–浮点数
无论八进制与十六进制的数值 在浏览器中显示是转化为十进制的数值
浮点数 至少有一个小数点 且小数点后要有数字
浮点数 但是可以作为整数存储
如果条件…就…否则…
禁忌以下代码
永远不要测试浮点数的值
NaN
NAN特点
1.任何涉及NaN的操作,结果都为NaN
2.NaN与任何值都不相等,包括NaN本身。例如:下面的代码会返回false
alert(NaNNaN)
// 创建数值对象
Number()是创建数值对象的构造函数
Number()作用 创建数值对象 将其他类型的数据转化为数值型
1.如果是布尔值, true和false将分别转换为1和0
2.如果是数字值,只是简单的传入和返回
3.如果是null ,返回0
4.如果undefined ,返回NaN
如果是字符串,遵循下列规则:
a."11"会变成11
b. "1.1”会变成1.1
c. “Oxf” 会变成相同大小的十进制整数值
d.如果字符串是空的,则将其转换为0
e.如果字符串包含除上述格式之外的字符,则将其转换成NaN
parseInt()
parseInt()作用,将其他数据类型转化为数值型
parseInt()的转换规则:
1.忽略字符串前面的空格,直到找到第一个非空格字符
2.如果第一个字符不是数字或者是负号,返回NaN
3.空字符串,返回NaN
4.如果第一个字符是数字,会继续解析第二个字符,直到解析完所有后续字符或遇到了一个非数字字符。
5.如果字符串以0x开头且后面跟数字字符,就会将其转为10进制数,同样,八进制也一样。
第二个参数
作用将其他数据类型转化为数值型,如果字符为十六进制或者八进制,会将十六进制或八进制先转化为十进制在输出
参一 为待转化的数据
参二 默认为十进制 如果有值取值范围为2-36位数
数学对象
数学对象 Math 数学对象下有很多api
random() 作用:出现随机数,大于0小于1的随机数
floor()向下取整
ceil() 向上取整
round() 四舍五入