JS历史及引入方式
完整的javascript实现由三个部分:
- 核心(ECMAScript)
- DOM(Document Object Model)文档对象模型 (例如一个完整的HTML文档就是一个 DOM对象
- BOM(Broswer)
JavaScript在绝大多数情况下是基于对象的,也是面向对象的
基于对象:已经提供了很多对象,你直接用就可以, 类的概念很少,不用你自己创建
JS基础:
- 变量
全部用关键字var声明
规范每条语句以;结束,如果不加,JS会默认以换行符作为一行的结束
声明变量时,可以不加var,则它是全局变量
- 数据类型
1.基本数据类型:Number String Boolean Undefined
Number:不区分整型和浮点型
String:都是unicode字符类型
Boolean:true=1 false=0 必须是小写
Undefined:只声明没给变量赋值 例如:var x;console.log(x)
Undefined这个数据类型只有一个值Undefinded
Null:只有一个值null 表示一个空的对象
2.引用数据类型:Object
- 强制数据类型转换:
parseInt('123avdf') #123
parseInt('asdsg123') #NaN: not a number属于Number数据类型的一种
NaN只要参与比较,布尔值一定是false,除非!=
var n=NaN; console.log(n>5); console.log(n<5); console.log(n==5); console.log(n==NaN)
parseFloat('6.9435') #6.9435
eval('1+1') : #2 将字符串强制转化为表达式并计算出结果
- typeof
console.log(typeof "123") #String
console.log(typeof ("123")) #String
- 运算符:
逻辑运算符:只区分布尔值和对象 对象:4 ‘hello'
1.&&
1.对象+Boolean值 对象
2.对象+对象 第二个对象
3.null+null null
4.NaN+NaN NaN
5.undefined+undefined undefined
2.==:并不是完全相等,会进行转换
// 比较字符串两侧如果一个是数字,一个是其他类型,会将其他类型转换成数字进行比较
// 比较字符串两侧如果都是字符串类型,比较的是最高位的asc码,如果相等,继续比较下一位
console.log(2==2) #ture
console.log(2=='2') #ture
console.log("3">"23") #ture
3.Boolean运算符
false:{},0,null,undefined,object(new Object())