javascript基础

136 阅读3分钟

浏览器

组成部分:shell(能看到用户界面) 内核

5大主流浏览器    内核

IE                      trident

chrome              webkit/blink

safari                 webkit

firefox               gecko

opera                presto

opera被360和昆仑万维收购了

内核:渲染rendering引擎/JS引擎


三大块

ECMAscript (语法、变量、关键字、保留字、值、原始类型、引用类型运算、对象、继承、函数)

DOM  document object model   (w3c)

BOM  browser object model (没有规则)


JavaScript  JS引擎

单线程 -》 模拟多线程

轮转时间片

短时间内轮流执行多个任务的片段

1、任务1     任务2

2、切分任务1 任务2

3、随机排列这些任务片段,组成队列

4、按照这个队列顺序将任务片段送进JS进程

5、JS线程执行一个又一个的任务片段

变量 数据结构 运算能力  函数

原始值      存在栈内存stack  并且不可改变值  

引用值    值指针存在栈内存   值存在堆内存



var i=100
for(;i--;){
    console.log(i)
}
false 0 NaN undefined 

 引用值:array object  function date RegExp

typeof(123)  typeof  123 都行 建议用typeof(123)

typeof(null)-->object

typeof(undefined) -->undefined

typeof(1 - "1")  -->number

typeof(a)----//a未被声明 -->undefined

typeof(typeof(a)) -->string

typeof 结果返回的结果的数据类型是string

显示类型转换、隐示类型转换

underfined不大于0不小于0不等于0   null也是

underfined等于null  但是不全等于

function test(a,b){     -->a,b占位,形式上占位,形式参数--》形参

     console.log(a,b)

}

var aa=Number(window.prompt('a'))

var bb=Number(window.prompt('b'))

test(aa,bb) -->实际参数,实参

形参和实参数量可以不相等


函数也是一种对象类型,  引用类型 引用值

test.name   test.length   test.prototype

对象——> 有些属性我们是我们无法访问的

                   JS引擎内部固有的隐式属性

                    [[scope]]

1,函数创建时,生成的一个JS内部的隐式属性

2,函数存储作用域链的容器、作用域链

GO  global object  全局执行期上下文

1,找变量

2,找函数声明

3,执行

AO  Activation Object   函数的执行期上下文

1,形参和变量声明

2,实参值赋给形参

3,寻找函数声明

4,执行函数

函数执行完成以后,AO是要销毁的

AO是一个即时的存储容器


ASCII码 Unicode码


ascii码 表一:0-127   表二:128-255  一个字节  byte

UNICODE码    涵盖ASCII码   除ASCII码以外   两个字节


typeof 用来判断各种数据类型

instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上

var a = {}

a instanceof Object