95年诞生 作者网景布兰登
基于对象和事件驱动具有相对安全性的客户端脚本语言,简单弱类型,动态性 不需要服务器响应,跨平台
ECMAScript1.0 2.0 3.0 5.0 ES2015
ECMAScript DOM BOM
// 写入页面 document.write('hello world'); // 弹窗 alert('hello world'); // 控制台输出 console.log('hello world'); // js注释 单行注释 // 多行注释 /* */ // 注意事项 在使用了src属性的<script> </script> 标签中书写的代码不会执行 // <script>标签属性 src 表示要引入的外部文件 charset很少用 defer 异步 页面渲染完成,按顺序执行 async 异步 加载完成立即执行(受网速影响 紊乱) 同时页面渲染不会停止
// 变量定义 var关键字 var txt; // undefined // 赋值 txt = "hello world" // 定义多个变量 var a = 3, b = 4;
break case catch continue default delete do else finally for function if in instanceof实例 new return switch this throw抛出异常 try typeof var void无效的 while with
abstract抽象的 boolean byte char class const debugger double enum枚举 export extends继承 final float goto转到 implements执行 import int interface long native本地 package private私有 protected受保护的 public short static super synchronized同步 throws transient临时的 volatile不稳定的
// number转 var num = 10; 1> String(num) 2> num + '' 3> num.toString() // boolean转 var flag = true; 1> String(flag) 2> flag + '' 3> flag.toString() // null转 1> String(null) 2> null + '' // undefined转 1> String(undefined) 2> undefined + ''
// 字符串转 var str = '2' 1> Number(str) 2> str - 0 // 除了'+'的算术运算符 3> parseInt(str) / parseFloat(str) var str = '2a' 1> Number(str) // 返回NAN 2> parseInt(str) / parseFloat(str) // 返回2 var str = 'a2' 1> Number(str) // 返回NAN 2> parseInt(str) / parseFloat(str) // 返回NaN // 特殊的值 NaN isNaN(NaN) // true typeof NaN // Number NaN == NaN // false // null转 Number(null) // 0 // undefined转 Number(undefined) // NaN // object转 Number({}) // NaN
// 字符串转 非空字符串为true var str = ' ' Boolean(str) // 非空字符串为true var str2 = '' Boolean(str2) // 空字符串为false // number转 非0和NaN 为true var num = 0 Boolean(num) // 0 false var num = Number("a2") Boolean(num) // NaN false // null转 Boolean(null) // false // undefined转 Boolean(undefined) //false // object Boolean({}) // 除了null都是true
+、-、*、/、% + 可以做字符串拼接
+=、-=、*=、/=、%=
>、>=、<、<=、==(隐式转换)、===、!=、!== 1.str 和 str 比较ASCII码 128位 0-9 (48-) A-Z(65-) a-z(97-) 2.str 和 num str转换为num再比较 3.num 和 num 直接比大小
&& 遇false短路 true && false && num num不会执行 || 遇true短路 !
++ 、 --、
? : var a = 3 var b = 2 a > b ? true:false // true
<<、 >>、 >>> 2 << 2 //8 2 >> 2 //0
. [] () ++ -- ~ ! delete new typeof void * / % << >> >>> < <= > >= instanceof == != === !=== & ^ | && || ?: = += ,