预解析、对象、错误

单线程

JavaScript 语言是单线程——在某个节点只能做一件事

进程和线程

进程是cpu中资源分配最小单位

线程是cup调度的最小单位  一个进程可以有多个线程

定时器

setTimeout(回调函数,时间间隔)隔多长时间只执行一次

clearTimeout(定时器名)清除定时器

setInterval(回调函数,时间间隔)每个多长时间执行一次,一直执行

clearInterval(定时器名)清除定时器

同步异步

因为JavaScript的单线程,因此同个时间只能处理同个任务,所有任务都需要排队,前一个任务执行完,才能继续执行下一个任务,但是,如果前一个任务的执行时间很长,比如文件的读取操作或ajax操作,后一个任务就不得不等着,拿ajax来说,当用户向后台获取大量的数据时,不得不等到所有数据都获取完毕才能进行下一步操作,用户只能在那里干等着,严重影响用户体验

同步任务

    同步任务是指在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务,当我们打开网站时,网站的渲染过程,比如元素的渲染,其实就是一个同步任务

  

异步任务

    异步任务是指不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程,当我们打开网站时,像图片的加载,音乐的加载,其实就是一个异步任务

预解析

JavaScript引擎对JavaScript代码进行时,会对JavaScript进行解析

 在预解析阶段,会将关键字var 和function开头的语块进行提前处理

也就是变量的提升,

变量的提升(只有声明提升,赋值不会提升)

变量名与函数声明的函数名重复:函数名提升

两个变量名重复,后面覆盖前面

两个函数声明函数名重复,后面覆盖前面

函数声明和变量名重复,函数覆盖变量

函数表达式不会提升

函数提升是分作用域的,是不会超出作用域的范围

作用域:全局

1,全局作用域:script标签中的代码,

js中代码,全局作用域打开时创建,页面关闭时销毁

2,局部作用域:只当当前作用域有效,只有函数才能产生作用域  函数调用时创建,调用完后销毁

所有的全局变量都可以看成浏览器对象的属性

隐式全局变量

1在函数中没有用var声明的变量

2在函数中没有用var声明以分号分割

3在函数中没有用var声明以连等的形式连接

作用域链的查找规则

1先从当前的作用域查找,有就返回

2如果没有就一次从上一级查找,直到全局作用域

3如果全局也没有就报错

对象:属性可以是任意类型, 对象是无序列表的集合

什么是对象:

生活中的对象:世间万物皆对象

程序中的对象:Javascript中的对象其实就是生活中对象的一个抽象

                        对象的特征——对象的属性

                        对象的行为——对象的方法

调用对象的属性值:对象.属性   

调用对象的方法: 对象.方法()

创建对象的方法

1字面量创建对象

var a={
  name: 'zs',
  age: 18,
  sex: true,
  sayHi: function () {
    console.log(this.name);  
}};  

2new Object

var a=new Object();
a.name='';
a.color='';

3.工厂模式

  var person = new Object();
  person.name = name;
  person.age = age;
  person.job = job;
  person.sayHi = function(){
    console.log('Hello,everyBody');  
}  
    return person;
}
var p1 = createPerson('张三', 22, 'actor');

        4自定义构造函数

function Person(name,age,job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayHi = function(){
    console.log('Hello,everyBody');  
}}
var p1 = new Person('张三', 22, 'actor');

new关键字

1.实例化对象

2.可以将构造函数中的this指向对象

函数中this的指向问题

1.构造函数中this指向实例化对象

2.对象函数中this指向当前对象

3.普通函数中this指向window

遍历对象

for(item  in  afunciton){}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值