一、诞生时间
1995年
二、JavaScript包含内容
ECMAScript:基本语法及相关对象es(包括我们了解的es3,es5,es6.es7...)
DOM:文档对象模型,用来操作HTML
BOM:浏览器对象模型,用来操作浏览器
三、书写方式
1、书写在script标签里(比较常用)
2、js文件里
3、对应时间属性里面(比较少用,针对少代码单一模块)
四、变量定义(使用var关键词声明,区分大小写)
1、见名知意
2、只能是对应的字母或数字或下划线等字符(注:不能用数字开头)
3、一般采用驼峰命名法(第一个单词首字母小写,其他单词首字母大写)
4、不能用关键字(占用之前的关键词的引用空间)
5、普通变量首字母小写,常量全大写(const)
注:函数-->fn
正则-->re
五、数据类型(检验值的类型)
1、number(所有数值)
2、string(单引号,双引号均表示字符串)
3、boolean(true or false)
4、null(是null的情况下)
5、undefined
注:number型在控制台的颜色为蓝色,字符串颜色为黑色,null和undefined为灰色
typeof可以查看对应类型(null显示的是object,而undefined是null的对象扩展,属于父子关系)
六、常见类型转换
1、number
1)number-->string
number.toString------隐式转换
2)number-->boolean
Boolean(number)-----非0为true,NaN和0为false
2、string
1)string-->number
Number(string)--------直接转换成number,当数值无法解析,结果为NaN
parseInt()
parseFloat()--->从前到后解析,无数值变NaN
2)string-->boolean
Boolean(string)--------非空为true(空格或换行也占位置),空字符串为false
3、undefined,null
1)转boolean
结果都是false
2)转number
前者为NaN,后者为0
4、boolean转number
false-->0
true-->1
七、运算符和表达式
1、算术运算符
+ - * / %
1) ' + '
--两个number相加 正常运算(1+1结果2)
--一个string加一个number 拼接(‘123’+1结果1231)
注:true+1结果为2,boolean类型和null和undefined小于number,则自动转成number
2)' - '
--一个string减一个number(‘123’-1结果为122)
注:true-1结果为0,undefined-1结果为NaN,null-1结果为-1,null为0
3)' * '
true * 3 结果为3
4)' % '
注:大数取余小数,取余结果得到的是余数;小数取余大数,结果得到的是小数。
2、++/--前置,后置
自增和自减的前置和后置的区别
前置先执行对应的++(--) 再执行对应的代码
后置先执行对应的代码 再执行++(--)
注:计算顺序(先算括号里面的 ++或-- 再进行乘除取余 再进行+- 再进行比较运算 再逻辑运费 再进行赋值)
3、逻辑运算
1、与&&
同为true才true
2、或||
有true就true
3、非!
做取反操作
4、比较
> , < , >= , <= , == , != , ===(全等,一个东西)
5、赋值
= , += , -= , /= ,*/ , %=
6、位运算(转为二进制再进行位的变化运算)
左移<<
右移>>
~去小数
谷歌面试题:
怎样快速从2得到8?
方案:
2转换成二进制为 10
8转换成二进制为 1000
则进行(2<<2)即左移2位,补0操作,既可实现快速转换
7、三目运算符
表达式(判断条件)?1:2
条件正确,则为1,反之,则为2
8、number扩展:保留小数方法
number.toFixed(2)即为number数值保留2位小数
八、进制的转换
1、十进制二进制的相互转换
十进制-->二进制 (除2取余法)
二进制-->十进制 (对应位数乘2的多少次方相加)
2、十进制转八进制 (除8取余)
3、十进制转16进制 (除16取余)
注:1)将对应8进制,16进制字符串转换为十进制数值:parseInt或parseFloat方法
2)将10进制数值转换成对应8进制或16进制字符串:toString方法