JavaScript简介

一、因何而生:

方便 表单验证操作(输入验证器)
1995年 2月 Netscape 布兰登 艾奇

JavaScript是一种专门为与网页交互而设计的脚本语言。

二、实现组成:
  • 核心:ECMAScript【ECMA—262】语言基础(规定:语法、类型、语句、关键字、保留字、操作符、对象)
  • 文档对象模型DOM:访问和操作页面内容的方法和接口,对节点树的增、删、改、查的操作。
    DOM1级:文档对象结构|DOM2级:视图、事件、样式、遍历和范围等模块|DOM3级:文档加载、保存;验证文档
  • 浏览器对象模型BOM:访问和操作浏览器窗口(弹出、移动缩放关闭、浏览器版本、页面详情location、显示器分辨率、cookie、等自定义)。

对象

用户对象:程序员自行创建的对象。

内建对象:预先定义好的,拿来就能用的对象。
Array对象、Math对象、Date对象

宿主对象:由浏览器提供的预先定义好的对象。
From Image Element

js垃圾收集

自动垃圾回收机制,执行环境负责管理代码执行过程中使用发的内存。

原理:找到不再继续使用的变量,然后释放其占用的内存。垃圾收集器会按照固定时间间隔周期性执行这一操作。

局部变量生命周期:
函数执行——局部变量在堆/栈分配相应的空间以便存储相应的值;

函数结束——释放内存。

有用?没用?

  • 标记清除:“进入环境——标记,被用的变量去标签;再标记重复的变量准备删除;内存清除。”
  • 引用计数(遗弃):“跟踪变量引用+1,再引用+1;删除引用计数为0清除。”

总结:

js变量可以用来保存两种数据类型的值:基本类型值、引用类型的值。

基本:underfined null boolean bunber string

特点:
基本类型值在内存中占据固定大小的空间,保存在栈内存中;
从一个变量向另一个变量复制基本类型的值,会创建这个值得一个副本;
引用类型的值是对象,保存在堆内存;
从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终始终都指向同一个对象。

判基本类型:typeof; 判一个值是哪一种引用类型instanceof:


纯属个人观点,仅供参考!

高级程序设计JavaScript的更多相关文章

  1. Javascript高级程序设计——javascript简介

    1.Javascript简史 javascript诞生于1995年,是由网景公司的Brendan Eich开发的,最初的目的是在客户端处理一些输入验证操作,自此后成为常见浏览器的特色功能,如今用途已经 ...

  2. 18. javacript高级程序设计-JavaScript与XML

    1. JavaScript与XML IE采取了下列方式: l 通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序 l Windows携带了MSXML库,JavaScript ...

  3. 1. javacript高级程序设计-JavaScript简介

    JavaScript诞生于1995年,由Netscape公司布兰登·艾奇开发,JavaScript主要包括三个部分: (1). ECMAScript,由ECMA-262定义,提高核心语言功能 (2). ...

  4. Javascript高级程序设计——Javascript简史+使用Javascript

    一.Javascipt简史 1.了解Javascript历史 Netscape(Javascript1.0).Microsoft(JScript)到JS1.1,再到ECMA-262标准 2.知道ECM ...

  5. 《JavaScript高级程序设计(第3版)》笔记-序

    很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...

  6. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  7. javascript 高级程序设计 -有感

    本来我想写一个高级程序设计总结的,结果发现我进入了一扇门,里面所有的字都要逐字逐句的理解,所有描述已经是非常精炼了,我最初的想法无异于老鼠吃大象. 我现在记录的是我在看这本时的感想. 2015.4月9 ...

  8. 【javascript学习——《javascript高级程序设计》笔记】DOM操作

    DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...

  9. 读javascript高级程序设计00-目录

    javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...

随机推荐

  1. win10系统如何关掉系统自动更新

    越来越多的电脑使用者都在使用Windows10系统,尽管系统是一代代更新的,但难免有槽点,Windows10系统也不例外,最大的槽点就是“自动更新”的功能.当然,“自动更新”的功能也是相当有用处的.  ...

  2. [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.

    给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...

  3. GUI_事件监听机制与ActionListener演示

    事件监听机制组成: 事件源:(awt包或者swing包中的那些图形界面组件)(被打的那个人,被点击的组件,可以承受某些事件,但不是所有事件都能承受) 事件:每个事件源都有自己特有的对应事件和共性事件( ...

  4. Android清理设备内存具体完整演示样例(二)

    版权声明: https://blog.csdn.net/lfdfhl/article/details/27672913 MainActivity例如以下: package cc.c; import j ...

  5. UVA816-Abbott's Revenge(搜索进阶)

    Problem UVA816-Abbott's Revenge Accept: 1010  Submit: 10466 Time Limit: 3000 mSec Problem Descriptio ...

  6. SSM 搭建精美实用的管理系统

    课程介绍 SSM 框架即 SpringMVC+Spring+Mybatis,相信各位朋友在投递简历时已直观感受到它的重要性,JavaWeb 相关工作的招聘要求中基本都包括了这三项技术能力. 由于其轻量 ...

  7. 以太坊中的Ghost协议

    https://blog.csdn.net/t46414704152abc/article/details/81191804 写得超好,终于弄懂了什么是叔块,怎么确定哪条链最长,以太坊与比特币出块的差 ...

  8. ADB安装及使用

    环境安装: 下载.安装和配置ADB     https://jingyan.baidu.com/article/22fe7cedf67e353002617f25.html 安装驱动adbdriver  ...

  9. OpenCV——轮廓填充drawContours函数解析

    函数的调用形式 void drawContours(InputOutputArray image, InputArrayOfArrays contours, int contourIdx, const ...

  10. 深入浅出的webpack构建工具---DllPlugin DllReferencePlugin提高构建速度(七)

    阅读目录 一:什么是DllPlugin 和 DllReferencePlugin?作用是什么? 二:在项目中如何使用 DllPlugin 和 DllReferencePlugin? 三:DllPlug ...