高级程序设计JavaScript
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的更多相关文章
- Javascript高级程序设计——javascript简介
1.Javascript简史 javascript诞生于1995年,是由网景公司的Brendan Eich开发的,最初的目的是在客户端处理一些输入验证操作,自此后成为常见浏览器的特色功能,如今用途已经 ...
- 18. javacript高级程序设计-JavaScript与XML
1. JavaScript与XML IE采取了下列方式: l 通过ActiveX对象来支持处理XML,而相同的对象也可以用来构建桌面应用程序 l Windows携带了MSXML库,JavaScript ...
- 1. javacript高级程序设计-JavaScript简介
JavaScript诞生于1995年,由Netscape公司布兰登·艾奇开发,JavaScript主要包括三个部分: (1). ECMAScript,由ECMA-262定义,提高核心语言功能 (2). ...
- Javascript高级程序设计——Javascript简史+使用Javascript
一.Javascipt简史 1.了解Javascript历史 Netscape(Javascript1.0).Microsoft(JScript)到JS1.1,再到ECMA-262标准 2.知道ECM ...
- 《JavaScript高级程序设计(第3版)》笔记-序
很少看书,不喜欢看书,主要是上学时总坐不住,没有多大定性,一本书可以两天看完,随便翻翻,也可以丢在角落里几个月不去动一下. 上次碰到了<JavaScript高级程序设计(第3版)>感觉真的 ...
- 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介
前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...
- javascript 高级程序设计 -有感
本来我想写一个高级程序设计总结的,结果发现我进入了一扇门,里面所有的字都要逐字逐句的理解,所有描述已经是非常精炼了,我最初的想法无异于老鼠吃大象. 我现在记录的是我在看这本时的感想. 2015.4月9 ...
- 【javascript学习——《javascript高级程序设计》笔记】DOM操作
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序编程接口).DOM描绘了一个层次节点树,允许开发人员添加.移除和修改. 1.节点层次 <html> <head& ...
- 读javascript高级程序设计00-目录
javascript高级编程读书笔记系列,也是本砖头书.感觉js是一种很好上手的语言,不过本书细细读来发现了很多之前不了解的细节,受益良多.<br/>本笔记是为了方便日后查阅,仅作学习交流 ...
随机推荐
- FUSE 用户空间文件系统 (Filesystem in Userspace)
FUSE 仓库 Wiki FUSE 性能评测 关于Fuse文件系统: FUSE (Filesystem in Userspace) is an interface for userspace prog ...
- 使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能
昨天晚上,花了点时间学习了Chrome插件的制作方法,并书写了<Chrome 百度搜索热点过滤插件 - 开源软件>这一文章,简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式,并进行 ...
- Gogs基本使用介绍
Gogs简介 Gogs 是一款类似GitHub的开源文件/代码管理系统(基于Git),Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs ...
- PHP 截取字符串乱码的解决方案
今天遇到一个坑,左右调试坑的我一脸懵逼,当我们对一条字符串进行截取的时候,通常第一个想到的就是substr()函数了,但是如果是中文+数字的字符串的话,这时候使用substr进行截取就会出现乱码的问题 ...
- 个人博客作业Week3(微软必应词典客户端的案例分析)
软件缺陷常常又被叫做Bug,即为计算机软件或程序中存在的某种破坏正常运行能力的问题.错误,或者隐藏的功能缺陷.缺陷的存在会导致软件产品在某种程度上不能满足用户的需要.IEEE729-1983对缺陷有一 ...
- linux 的常用命令---------第十一阶段
软件管理rpm.yum 在 windows 与 linux 之间 实现小文件传输(仅支持在 X shell 中完成文件传输,虚拟机中不可实现): # yum install lrzsz -y ...
- python在图片上写汉字
1.python opencv的putText只能画英文上去 2.借鉴这个https://blog.csdn.net/dcrmg/article/details/79108491 使用pil 首先,你 ...
- nodejs中引用其他js文件中的函数
基本语句 require('js文件路径'); 使用方法 举个例子,在同一个目录下,有app.fun1.fun2三个js文件. 1. app.js var fun1 = require('./fun1 ...
- P1-Linux下安装MySQL及登录用户配置
Linux下安装MySQL及登录用户配置 环境:Centos7.4 Mysql5.6 1. 查询是否安装 MySQL和MariaDB rpm -qa | grep -i mysql rpm -q ...
- 安装win10操作系统的设备将要突破10亿台
导读 该公司最初的目标是在发布后的三年内在 10 亿台设备上运行 Windows 10. 据微软高管梅赫迪 (Yusuf Mehdi) 周四在 Twitter 上透露,目前已经有 8 亿多台设备安装了 ...