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],[进制]):也是转换为数字的方法,对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不再找了),把找到的当做数字返回
  1. let str = '12.5px';
  2. console.log(Number(str)); // NaN
  3. console.log(parseInt(str)); // 12
  4. console.log(parseFloat(str)); // 12.5
  5. console.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])
  • ! / !! !先转为布尔值 然后取反

    1. !! 取反再取反,只相当于转换为布尔值
  • 条件判断中,条件如果为 false 条件不成立。

7. null / undefined

null 和 undefined 都代表的是没有

  • null:意料之中(一般都是开始不知道值,我们手动先设置为 null,后期再给予赋值操作)
  1. let num = null; //=>let num = 0; 一般最好用 null 作为初始的空值,因为零不是空值,他在栈内存中有自
  2. // 己的存储空间(占了位置)
  3. ...
  4. num = 12;
  • undefined:意料之外(不是我能决定的)
  1. let num; //=>创建一个变量没有赋值,默认值是 undefined
  2. ...
  3. num = 12;

8. object对象数据类型-普通对象

{[key]:[value],…} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的(并且属性名不能重复)

  1. let person = {
  2. name: '易烊千玺',
  3. age: 40,
  4. height: '185CM',
  5. weight: '80KG',
  6. 1: 100
  7. };
  8. // 删除属性
  9. // 真删除:把属性彻底干掉
  10. delete person[1];
  11. // 假删除:属性还在,值为空
  12. person.weight = null;
  13. console.log(person);
  14. // 设置属性名属性值
  15. // 属性名不能重复,如果属性名已经存在,不属于新增属于修改属性值
  16. person.GF = '园园';
  17. person.name = '李易峰';
  18. console.log(person['GF']);
  19. console.log(person['name']);
  20. // 获取属性名对应的属性值
  21. // 对象.属性名
  22. // 对象[属性名] 属性名是数字或者字符串格式的
  23. // 如果当前属性名不存在,默认的属性值是undefined
  24. // 如果属性名是数字,则不能使用点的方式获取属性值
  25. console.log(person.name);
  26. console.log(person['age']);
  27. console.log(person.sex); // undefined
  28. console.log(person[1]);
  29. // console.log(person.1); // SyntaxError:语法错误

数组是特殊的对象数据类型

  1. let ary = [12, '哈哈', true, 13];
  1. 我们中括号中设置的是属性值,它的属性名是默认生成的数字,从零开始递增,而且这个数字代表每一项的位置,我们把其成为“索引” =>从零开始,连续递增,代表每一项位置的数字属性名
  2. 天生默认一个属性名 length ,存储数组的长度,第一项索引为0,最后一项索引为 length-1