JS黑历史
1991 李爵士 www
1992 同事 css
1995 网景 Netscape=>Navigator 脚本 Branden Eich JS之父 Mocha =>liveScript => JavaScrip 表面看起来像Java Unicode 发布 utf-8 bug编码
1996 Ms.IE=>JScript 网景 开源 Firefox Monzilla IE 5.5. MS推出JS发请求
网景向ECMA 申报标准 ECMAScript
2004 Gmail 网页上的程序 编程 2010中国知道 前端 Front-end 以JS为生
ECMAScript3
ECMAScript4(死了)
JS不行:
全局变量(模化)
标准库(内置代码少)
IE7不兼容ECMAScript5 步子太小
Rails社区Ruby=>coffeeSript JS改良版 类、箭头函数、opional chain语法
IE8不兼容ECMAScript6
现代编程语言 集大家所长
原创之处并不优秀 优秀之处并非原创
JS每年一更 ES7 新特性2
ES8 10
Wepback ES Next
JS把还没发布的特性就已经使用了
JS数据类型
7种数据类型
数字 number
字符串 string
布尔 boolean
symbol(符号 )
null
undefined
对象 object 包含 array function
number
十进制 1、 .1、1.1、1.23e2
二进制 0b11
八进制 011
十六进制 0x11
string
'你好'
"你好"
'' 、""空字符串 0
' '、" "空格字符串 1
转义:
\是转义符
var a = ' ' ' 单引号
var n =' \n ' 回车
var t = '\t ' tab(制表符)
var b = ' \' \符号
多行字符串(不是字符串里有回车)
var s ='123456 \ 1坑人语法
67890'
var s2 = '123456'+ 2 好读的语法
'67890'
ES6 var s4 = 123456 6789
包含回车11个字符
布尔 boolean
true/false
&&与 一假为假
||或 一真为真
null类型和undefined类型
一个值 null
一个 undefined
区别:1变量没有赋值 --》undefined
2有一个对象object--》现在不想赋值 null 空对象
有一个非对象---》不想赋值 undefined 空非对象
var n 惯例
object 复杂类型由简单类型组成
哈希表
var person{
xiaosan:undefined,
name:'frank',
age:'18',
married: true,
children:{name:'xxx',age: 1,},
'':'2333',
}
person['name'] 引号内符合标志符情况下可以用下面
person.name
delete person['name']
person.name//undefined(无value)
'name' in person // false(无key)
for(var key in person){
console.log(key)
}//name age
for(var key in person){
console.log(key,person[key])
} //
name frank
age 18
typeof
var t =1
typeof t
//number
t='sssss'
typeof t
//string
t = true
typeof t
//boolean
t= undefined
typeof t
//undefined
t= {}
typeof t
//object
typeof null
//'object'
typeof fn// 'function'
网友评论