首先,我们要知道JS的数据类型主要分为两大类:

1.原始数据类型:

1)boolean

2)string

3)number

4)null

5)undefined

2.引用数据类型:

1)宿主       -->Bom,Dom

2)内置       -->Globe Math

3)原生       -->function,array,object...

原始型数据类型和引用型数据类型的差距:
两者差距在于对其的储存方式不同,原始型数据类型是用一个存储点来储存,所以传递过去的直接是数据的内容,而引用型数据类型是用一排连续的储存点来进行储存,不能直接一次传送过去所有的内容,是按照顺序一个接一个的进行存储,所以如果在传递过程中发生了数据的改变,那么被传递的一方也会跟着改变~

我们知道,如果要在一个函数中使用一个定义的变量,要么是在全局中定义,要么在该函数中定义,如果该变量在另一个函数中的话,就比较麻烦了(至少以前我是不知道该怎么做的)。

所以我们可以用一种闭包的方法来实现,下面是该方法的基本用法:

function main(){

  var i=0;

  var out=function(){

    i++;

    console.log(i);

  }

  return out;

}

var bpack=show();

bpack();

运行的结果是每一次运行就会实现i++的效果,而并不会每次都让i=0。也就是说,当我们执行函数

bpack()的时候,可以将i独立出来,并不受main()里面i的影响。就可以实现在两个函数中相互调用变量。

从例子中,我们可以看出,闭包的原理就是在一个函数中return另一个函数,然后再调用主函数,那么就可以使用其中的变量了。

匿名函数:其实也是闭包的一种。

(function(i){console.log(i)})(x);

结果为x。

函数的继承:

function game(){

  this.gtime=100;

  this.action=function(){};

}

function gamer(){

  this.action=function(){

    console.log("run")

  }

}

gamer.prototype=new game();

var gamer1=new gamer();

console.log(gamer1);

gamer1.action();

原型链:

new gamer()先找到原型(如果有则执行,没有就不执行),执行原型里面的代码,再找原型的原型,也就是最大的object对象...再执行自己的代码。

数据运算:

加好两端如果有字符串,就按照字符串拼接处理,如果没有就按照算数运算处理。

减号两端都是按照算数运算处理。

转载于:https://www.cnblogs.com/zaxxm/p/4068683.html

JS高级部分(个人认为)相关推荐

  1. 《Ext JS 高级程序设计》的目录与样张

    第一部分 Ext Core 第1 章 Ext Core 重要概念 ············· 2 1.1 Ext.Element······························· 2 1. ...

  2. 前端知识点总结——JS高级(持续更新中)

    前端知识点总结--JS高级(持续更新中) 1.字符串 什么是: 连续存储多个字符的字符数组 相同: 1. 下标 2. .length 3. 遍历 4. 选取: slice(starti[, endi] ...

  3. Ext JS高级程序设计

    Ext JS高级程序设计 图书详细情况查看: http://www.china-pub.com/193076 市场价 :¥59.00 会员价 : ¥44.25(75折) [作 者]黄灯桥;徐会生 [同 ...

  4. Js高级(1) 事件11.30

    JS高级(1) 1.事件 概念:浏览器客户端上客户触发的行为都称为事件,所有的事件都是天生自带的,不需要我们去绑定,只需要我们去触发.通过obj.事件名=function(){} 事件名:onmous ...

  5. JS高级的学习(二)

    JS高级的学习(二) set对象 Set 是一个对象 存放数据 数据永远不会重复 Set 当成是一个数组 遍历 使用 数组方法 find findIndex Map 数组转成 Set对象 const ...

  6. js高级程序设计第四部分

    js高级程序设计:BOM.客户端检测 BOM window对象 在浏览器中,window 对象有双重角色,它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 ...

  7. JS高级前端开发群加群说明

    http://www.cnblogs.com/jikey/p/4426105.html JS高级前端开发群加群说明 一.文章背景: 二. 高级群: 三. 加入方式: 四. 说明: 一.文章背景: 去年 ...

  8. JS高级前端开发群加群说明及如何晋级

    一.文章背景: 去年年初建了几个群,在不经意间火了,一直排在"前端开发"关键字搜索结果第一名.当然取得这样的成绩或这样一个结果也是情理之中,一方面来说,提倡的各种交流沟通方法大部分 ...

  9. 读js高级程序设计中有感

    我现在都到js高级程序设计最难的章节,第六章,对象,虽然有人推荐不用全部读完,但我还是完整的读一遍吧,一遍可以敲代码一边看书理解加百度,我认为这种方式很好,可以加深理解增强印象,这是我觉得这本书比JS ...

  10. js高级jQuery框架easyUI框架

    js高级与easyUI框架 一.JavaScript高级 1.ajax请求 ajax:局部刷新技术 使用场景:分页数据的刷新,二级联动,验证用户名是否重复,地图局部刷新 核心对象: JavaScrip ...

最新文章

  1. Linux--------------安装jdk
  2. 【数据结构与算法】之深入解析“两个数组的交集”的求解思路与算法示例
  3. 解读直播连麦与点播加密
  4. 5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕
  5. VM虚拟机 安装OS X 错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123
  6. vim怎么跳转到函数定义处_Vim、gvim操作跳转光标区块和代码块的跳转
  7. Spring框架----Spring的bean的作用范围
  8. Java线程池 - 问题驱动学习
  9. 读书笔记_量化交易如何建立自己的算法交易02
  10. python多线程知识点(只能说是知道有多线程一个词而已,摸摸头顶,还有毛)
  11. SQL数据库异地备份(小白篇)两台服务器之间备份
  12. 计算机组成与系统结构
  13. JAVA-时间日期格式转换
  14. 无线通信里的 UAV
  15. JavaScript ,js基础
  16. SpringMVC---- SpringMVC返回JSON数据
  17. GIS功能区类型识别
  18. linux执行一个可执行文件,不同Linux系统下同一个可执行文件执行有关问题
  19. 50道HIVE练习题-搞定了这50题hive sql,那可不嘚直接通关起飞!!!
  20. linux-gcc 找不到命令,为什么显示gcc命令没有找到?

热门文章

  1. PyTorch基础(15)-- torch.flatten()方法
  2. S5PV210开发 -- 通过 DNW、fastboot 烧写
  3. DM8168心得之SD卡快速分区制作
  4. Mysql: SQL JOIN 子句详解
  5. 2018汇总数据结构算法篇
  6. TensorFlow 使用例子-LSTM实现序列标注
  7. Android开发工具之Android Studio---版本控制SVN使用(二)
  8. JZOJ 5439. 【NOIP2017提高A组集训10.31】Calculate
  9. 将null转换成数组_把数组里面的值为 null 的转换为字符串 - - ,你们的方法都是什么呢?...
  10. iphone看python文件_Python实战 | 只需 ”三步“ 爬取二手iphone手机信息(转发送源码)...