作用域

栈内存:js执行的环境
堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放
js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一个是执行模块
内存模块会给所有的变量一个内存地址 变量的声明在js中靠关键字 var 和 function

1.什么时候会有作用域的形成:
①浏览器天生有一个全局叫window
②函数执行的时候会形成一个私有的

js在执行之前 浏览器会给他一个全局作用域 叫window 在window下分两个模块 一个是内存 一个是执行
内存会找到所有的关键字 var 和 function 对变量进行提前声明 这个功能叫变量提升 给每个变量分配一个内存地址
执行模块遇到变量首先会在自己的作用域下通过内存地址去查找这个变量是否存在 如果有 就直接操作 没有
就向他的上一级作用域的内存模块查找 有就操作 没有就继续向上查找 直到widnow 这种查找机制叫作用域链

2.变量名冲突:
console.log(a) // f a
var a = 1;
console.log(a) // 1
function a () {alert(2)}
console.log(a) // 1
var a = 3;
console.log(a) //3
function a () {alert(4)}
console.log(a) //3
a() // a is not function

赋值运算
赋值运算 就是把后面的数据赋值给等号前面的变量 后面的数据分两种情况
①基本数据类型:number string Boolean null undefined 直接将数据赋值给前面的变量
②引用数据类型:array object function 将内存地址赋值给前面的变量

object 和 json二者的区别
①长得一样 都是以键值对形式书写
②object的键可以不加引号 但是 json必须加
③object是前端的数据类型 json是数据库存放的数据格式
如果跟后台交互的时候键不加引号会报一堆错 书写格式不对
obj = {name:"张三"}<--前端的数据类型 json = {"name":"张三"}<--你跟后台交互用他

object对象
1.对象的定义方式
①字面量定义 var obj = {name:"张三"}
②类的实例 var obj = new Object{} obj.name = "张三"

2.类     类的本质是function
①类的阶梯

3.类和实例的关系
①每个类 ( 函数 ) 都有prototype的属性 这个属性是一个对象 里面有一个constructor的属性 属性值就是这个类本身
②每个实例 ( 对象 ) 都有一个__proto__的属性 这个属性也是一个对象 他指向当前类的原型
③prototype 和 __proto__ 二者都叫原型 前者是存放属性的对象 后者是用来查找属性的 前者给开发者使用 后者浏览器会自动查找

从零开始的全栈工程师——JS面向对象(复习)的更多相关文章

  1. 从零开始的全栈工程师——JS面向对象(初篇)

    面向对象编程 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式.它使用先前建立的范例,包括模块化,多态和封装几种技术.今天,许多流行的编程语言(如Java,JavaScript,C#,C+ ...

  2. 从零开始的全栈工程师——JS面向对象( 六大继承 )

    一.对象克隆 var obj = { name:'li', age:23 } var obj2 = obj; // 这不是对象克隆 只是把obj的内存地址给obj2 1.for in克隆(浅拷贝)  ...

  3. 从零开始的全栈工程师——JS面向对象( 原型 this 继承)

    一.生成对象的方式 ①单例模式(字面量定义)var obj = {} ②类的实例 var obj = new Object( ) ③工厂模式 ④构造函数:扮演三种角色 普通函数 普通对象 类 工厂模式 ...

  4. 从零开始的全栈工程师——js篇2.12(面向对象)

    面向对象 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差. 所以作者就收到java和c的影响,往面向对象靠齐.Js天生有一个Object ...

  5. 从零开始的全栈工程师——js篇2.20(事件对象 冒泡与捕获)

    一.复习 面向对象 1)单例模式 2)工厂模式 3)构造函数 ①类js天生自带的类 基类object function array number math boolean date regexp st ...

  6. 从零开始的全栈工程师——js篇2.5

    数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...

  7. 从零开始的全栈工程师——js篇2.1(js开篇)

    JS开篇 一.js介绍 全称 javascript 但不是java 他是一门前台语言 而java是后台语言js作者 布兰登·艾奇 前台语言:运行在客户端的后台语言:跟数据库有关的 能干什么?    页 ...

  8. 从零开始的全栈工程师——js篇(闭包)

    闭包是js中的一大特色,也是一大难点.简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量. 闭包的三大特点为: 1.函数嵌套函数 2.内部函数可以访问外部函数的变量 3.参数和变量不会 ...

  9. 从零开始的全栈工程师——js篇(js的异步)

    js中的异步 Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任 ...

随机推荐

  1. Hibernate的工作流程以及三种状态

    Hibernate的工作流程: 1. 读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3. 打开Sesssion 4.创建事务Transation 5. 持久化操作 6. ...

  2. HTML的相关路径与绝对路径的问题---通过网络搜索整理

    问题描述:    在webroot中有个index.jsp 在index.jsp中写个表单. 现在在webroot中有个sub文件夹,sub文件夹中有个submit.jsp想得到index.jsp表单 ...

  3. postgress数据库 出现大写字母 字段名但是提示说不存在

    select BSK001 from dbdata 报错: column "bsk001" of relation "dbdata" does not exis ...

  4. mysql sql知识总结

    SQL知识总结: 检索不同的行: SELECT DISTINCT VEND_ID FROM PRODUCTS; DISTINCT 应用于所有的列 =================== 限制结果: S ...

  5. 洛谷 P1111 修复公路(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1111 这道题的关键是读懂题: 首先根据题中的一些扎眼的字眼我们可以判断这是一道用最小生成树来做的题 ...

  6. StyleSheet

    StyleSheet.create()方法 //定义组件 var App = React.createClass({ render:function () { return( <View sty ...

  7. 关于zabbix _get返回Could not attach to pid的问题

    分析:这是因为由于zabbix客户端没有权限,导致zabbix_server端无法获取到键值数据!! 解决:在客户端上添加用户sudo的权限就可以解决了. 验证:是脚本的话还要在脚本里加上sudo的命 ...

  8. jeesite 的提示消息图标

    jeesite  的提示消息图标 jeesite 框架的提示信息 保存数据时 总是显示一个叉子图标 不符合要求 原因: 不加成功两字:如下 后来大神说 保存数据提示语句必须加“”“成功” 才会出现正确 ...

  9. 【Java】qatools.properties

    Link: https://github.com/qatools/properties 今天在GitHub上看到一个Java库,能方便帮助读取properties的配置文件. 具体使用可以参考上面的链 ...

  10. FLUENT 流体计算应用教程

    温正 清华大学出版 2013.1                                          子谓颜渊曰,用之则行,舍之则藏,惟我与尔有是夫!         非常合适的一本书. ...