1,常用的主流浏览器以及其内核
webkit 内核 : 谷歌 cheome , Safari , opera ,
Gecko : 火狐 Firefox
Presto : Opera
Tident : IE , IE EDGE
二 , JS相关的知识
1,js命名规范
1,js要严格区分大小写
2,使用以字母下划线 ,$,开头.
3, 要使用驼峰命名法,首字母小写剩下的每个有意义的单词首字母要大写
4,不能使用关键字和保留字
2,JS中的一些常用变量
var let const
var let 是变量但是const是常量
3, js中的常用数据类型
基本数据类型
数字 Number
字符串 String
布尔 Boolean 布尔分为 true / false
空指针对象 Null
未定义 undefined
比较特别的 NaN
引用数据类型
对象数据类型 Object
普通对象 {}
数组对象 []
正则 Reg exp
数字函数对象 Math
函数 function
等…….
三、数据类型转换
1,Number数字类型
其中数字类型包含 常规的数字、NaN
NaN和任何值都不相等包括自己,
isNaN
isNaN是用来检测一个值是否为非有效数字,如果不是就返回true,相反不是就返回false
在使用isNaN检测是,首先检验他的值是否为数字类型,如果不是,就用Number()这个方法吧值转换为数字类型在在进行检测
2. 把其它类型值转换为数字类型
- Number([val])
- parseInt / parseFloat([val],[进制]):也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不再找了),把找到的当做数字返回
let str = '12.5px';console.log(Number(str)); // NaNconsole.log(parseInt(str)); // 12console.log(parseFloat(str)); // 12.5console.log(parseFloat('width:12.5px')); // NaN
- == 进行比较的时候,可能要出现把其它类型值转换为数字
- 空字符串会变为数字0
- null -> 0 ubdefined -> NaN
- 把引用数据类型转换为数字,是先把他基于 toString 方法转换为字符串,然后在转换为数字
- 把字符串转换为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果都是 NaN,空字符串会变为数字零
3. string字符串数据类型
所有用单引号、双引号、反引号(撇 ES6模板字符串)包起来的都是字符串
4. 把其它类型值转换为字符串
- [val].toString()
- 字符串拼接
+ 加号为字符串拼接 其他都是运算
js 在不同类型值之间运算时一般会转为数字类型的运算
5. boolean布尔数据类型
只有两个值 true / false 分别代表1和0
6. 把其它类型值转换为布尔类型
只有 0、NaN、’’、null、undefined 五个值转换为FALSE,其余都转换为TRUE(而且没有任何的特殊情况)
- Boolean([val])
! / !! !先转为布尔值 然后取反
!! 取反再取反,只相当于转换为布尔值
条件判断中,条件如果为 false 条件不成立。
7. null / undefined
null 和 undefined 都代表的是没有
- null:意料之中(一般都是开始不知道值,我们手动先设置为 null,后期再给予赋值操作)
let num = null; //=>let num = 0; 一般最好用 null 作为初始的空值,因为零不是空值,他在栈内存中有自// 己的存储空间(占了位置)...num = 12;
- undefined:意料之外(不是我能决定的)
let num; //=>创建一个变量没有赋值,默认值是 undefined...num = 12;
8. object对象数据类型-普通对象
{[key]:[value],…} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的(并且属性名不能重复)
let person = {name: '易烊千玺',age: 40,height: '185CM',weight: '80KG',1: 100};// 删除属性// 真删除:把属性彻底干掉delete person[1];// 假删除:属性还在,值为空person.weight = null;console.log(person);// 设置属性名属性值// 属性名不能重复,如果属性名已经存在,不属于新增属于修改属性值person.GF = '园园';person.name = '李易峰';console.log(person['GF']);console.log(person['name']);// 获取属性名对应的属性值// 对象.属性名// 对象[属性名] 属性名是数字或者字符串格式的// 如果当前属性名不存在,默认的属性值是undefined// 如果属性名是数字,则不能使用点的方式获取属性值console.log(person.name);console.log(person['age']);console.log(person.sex); // undefinedconsole.log(person[1]);// console.log(person.1); // SyntaxError:语法错误
数组是特殊的对象数据类型
let ary = [12, '哈哈', true, 13];
- 我们中括号中设置的是属性值,它的属性名是默认生成的数字,从零开始递增,而且这个数字代表每一项的位置,我们把其成为“索引” =>从零开始,连续递增,代表每一项位置的数字属性名
- 天生默认一个属性名 length ,存储数组的长度,第一项索引为0,最后一项索引为 length-1
