五大主流浏览器及其内核
浏览器 | 内核 |
---|---|
chrome | webkit blink |
safari | webkit |
firefox | gecko |
opera | presto |
IE | trident |
浏览器的历史
JavaScript的目的就是为了能动态的和用户进行交互
1990(蒂姆,允许他人浏览自己的网页)-->1993(MOSIAC浏览器 显示图片)-->1994(Netscape)-->1996(微软 IE liveScript-->javaScript)-->2001(IE6 js引擎)-->2003(mozilla,firefox--netscape navigator)-->2008(google,WEBKIT BLINK progressive web app渐进式,chrome-v8-js引擎【1.直接翻译机器码2.独立于浏览器进行)-->2009
javaScript
js是轻量级解释型语言,不需要根据不同平台进行移植
脚本语言->脚本引擎->解释器
javaScript组成
ECMAScript(语法、变量、关键字、原始类型、引用类型、运算、继承等)+dom(w3c规范)+bom(没有规范)
单线程和多线程
js(具体来说是js引擎)是单线程的。
单线程-->模拟多线程
轮转时间片:短时间之内轮流执行多个任务的片段
基本写法
<script type="text/javascript" src="index.js"> document.write('hhh') </script>
这个写法是不对的,调用外部js代码后不会执行里面的里面的js代码了
命名规范
1、$、_、数字、字母,其中数字不能开头
2、关键字,保留字不能
3、语义化、结构化
4、变量名:驼峰命名法(小驼峰)myName
优先级
运算>赋值
基本数据类型(原始值)
Number、String、Null(空值)、Undefined(未赋值的)、Boolean
存储在栈内存中,原始值不会被销毁,只能被覆盖,即重新赋值
动态语言->脚本语言->解释型语言->弱类型语言(弱化数据类型,js)
静态语言->编译型语言->强类型语言
引用类型
Object、Array、function、Data、RegExp
引用值是把指针存在栈中,值存在堆中,指针指向堆内存所存储的地址
var arr1 = [1, 2] var arr2 = arr1 arr1.push(3) console.log(arr2);//[1,2,3]