【读书笔记】-- JavaScript数组】的更多相关文章

人比较笨,以前只做项目,案例,然而一些javascript的很多理论不知道该怎么描述,所以最近开启一波读书之旅: 标识符 1.定义 标识符以字母开头,可能后面跟上一个或多个字母.数字或者下划线. 2.用处 标识符被用于语句.变量.参数.属性名.运算符以及标记. 数值 1.数值在内部被表示为64位的浮点数: 2.NaN是一个数值,但是它不与任何值,包括它自己,即 NaN !== NaN 为 true: 3.isNaN可以检查数值是否为NaN: 4.方法: number.toExponential(…
一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {"json:":"666"}]; console.log(arr.length); 二.JavaScript 数组的两种声明 1.var arr = [元素]; var arr = ["坚持"]; 2.new Array(); 或者 var arr2 =…
PDF下载链接: http://pan.baidu.com/s/1eSDSTVW 密码: 75jr 第1章 引言 1.1 回顾历史 1.2 变革之风 1.3 分析现状 1.4 展望未来 1.5 面向对象的程序设计 1.5.1 对象(属性和方法的集合) 1.5.2 类 (相似对象的共同特征,如麻雀.老鹰都是鸟类) 1.5.3 封装 (将属性和方法集合起来,也有封闭作用域的概念,如封装一个播放器对象) 1.5.4 聚合 (将几个对象合并成一个对象) 1.5.5 继承 (一个实例对象继承父级对象的一些…
JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代码复用.信息隐藏和组合调用. 函数用于指定对象的行为. 函数对象Functions: 在JavaScript中函数就是对象.对象是"键值"对的集合并拥有一个连接到原型对象的隐藏连接. 对象字面量产生的对象连接到Object.prototype.函数对象连接到Function.prototy…
第7章 浏览器环境 7.1 在HTML页面中引入JavaScript代码 7.2概述BOM与DOM(页面以外事物对象和当前页面对象) 7.3 BOM 7.3.1 window对象再探(所以JavaScript核心函数也都是window对象的方法) 7.3.2 window.navigator(浏览器信息,如window.navigator.userAgent) 7.3.3 Firebug的备忘功能 7.3.4 window.location(当前页面的URL信息,如设置href属性可实现页面跳转…
前言 这本由David Flanagan著作,并由淘宝前端团队译的<JavaScript权威指南>,也就是我们俗称的“犀牛书”,算是JS界公认的“圣经”了.本书较厚(有1004页),读起来颇费功夫,但作为JavaScript(下文简称:JS)相关从业者,我还是鼎力推荐,一定要读完这本经久不息,好评如潮的JS“圣经”(如果您有耐心的读完,觉得还不错的,博客最后附有购买本书的优惠券,可自行领取). 说完本书重要性,下面重点介绍一下本书作者写书的逻辑性,简单来说本书分为四部分,第一部分:JS核心:第…
写在前面: 以下三选一: 阅读博文JavaScript 对象详解. 阅读<JavaScript权威指南>第6章. 阅读<JavaScript高级程序设计>第6章. 注意:只需要看"理解对象"(Understanding Objects)部分. 6.2 创建对象 6.2.1 工厂模式 创建多个相似对象的问题,代码实现 function createPerson(name, age, job) { var o = new Object(); //关键之一 o.nam…
由于js基础差, 记性也不好,准备一边读书一边做记录,希望这样能加深一下记忆 /*   第一天     */ javascript 基本数据类型 js一共只有五种数据类型 Undefined,  Null, Boolean, Number, String 1.Undefined 变量只声明未赋值 变量的值为undefined var message alert(message) //undefined 声明未赋值 alert(name) //报错 未声明的变量 2.Null    Null是一个…
对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用.这个JavaScript自身提供的全局对象的功能包括: 1.全局对象拥有一些常用的属性值.比如undefined.Infinity以及NaN.2.全局对象拥有一些常用的属性对象.比如Math.JSON和Number对象均为该全局对象的属性.3.全局对象提供一些全局函数供调用.比如isNaN().isFinite().parseInt()和eval()等.4.全局对象提供一些全局构造器…
1.组合继承 (JavaScript 中最常用的继承模式 ) (position: page168) (书中定义了两个变量名 SuperType   SubType  乍一看 感觉不太能区分,我将改为 a b ,更加明显区分开来这是两个东西.) function a(name){ this.name = name; this.colors = ["red", "blue", "green"]; } a.prototype.sayName = fu…
JavaScript 对象 除了数字.字符串.布尔值.null.undefined(都不可变)这5种简单类型,其他都是对象. JavaScript中的对象是可变的键控集合(keyed collections). 对象是属性的容器,其中每个属性都拥有名字和值. JavaScript中的对象是无类别的(class-free)的.它对新属性的名字和值没有约束. JavaScript包括一个原型链特性,允许对象继承另一对象的属性. 对象的检索: stooge[“first-name”]或者stooge.…
Cp16数组 一维数组,多维数组,交错数组:引用类型:P338的图非常的清楚地描述了值类型和引用类型在托管堆中的关系:越界检查: 数组初始化 数组初始化器: 四种写法 string[] names = new string[] { "hello", "world" }; var dogs = new string[] { "hello", "world" }; var cats = new[] { "hello&qu…
1. 什么是闭包? 参考MDN. 2. 闭包的使用示例 2.1 示例1 <div>1</div> <div>2</div> <div>3</div> <script> var nodes = document.getElementsByTagName('div'); for (var i = 0, len = nodes.length; i < len; i++) { /* 注意这里 */ (function (i)…
第5章 原型 5.1 原型属性(所有函数拥有一个prototype属性,默认为空对象) 5.1.1 利用原型添加方法和属性 function Gadget(name,color){ this.name=name; this.color=color; this.whatAreYou=function(){return 'I am a'+this.color+' '+this.name;} } //方案一,对象属性方法追加 Gadget.prototype.price=100;//属性 Gadget…
单例模式:保证一个类只有一个实例,并提供一个可以访问它的全局访问点. 一种简单.方便的写法就是用一个变量来标识当前类是否已经创建过对象,如果有,则返回已经创建好的对象,否则创建一个新对象,并将其返回. var Singleton = function(name) { this.name = name; this.instance = null; } Singleton.prototype.getName = function() { alert(this.name); } Singleton.g…
24.柯里化 首先想解释一下,“柯里化”的意思, [在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术.这个技术由 Christopher Strachey 以逻辑学家 Haskell Curry 命名的,尽管它是 Moses Schnfinkel 和 Gottlob Frege 发明的.]——from 百度百科 题目描述 已知 fn 为一个预定义函数,实现函数 curryIt,调用…
14. 题目描述 实现一个打点计时器,要求 1.从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2.返回的对象中需要包含一个 cancel 方法,用于停止定时操作 3.第一个数需要立即输出 function count(start,end){ console.log(start); var counter; counter=setInterval(function(){ if(start<end){ conso…
11.为数组 arr 中的每个元素求二次方.不要直接修改数组 arr,结果返回新的数组 function square(arr) { var resultArr=new Array(); for(var i=0;i<arr.length;i++){ resultArr[i]=arr[i]*arr[i]; } return resultArr; } 12.在数组 arr 中,查找值与 item 相等的元素出现的所有位置 function findAllOccurrences(arr, target…
7.合并数组 arr1 和数组 arr2.不要直接修改数组 arr,结果返回新的数组 function concat(arr1, arr2) { return arr1.concat(arr2); } 还是考察concat方法,不会修改原数组. 8.在数组 arr 的 index 处添加元素 item.不要直接修改数组 arr,结果返回新的数组 function insert(arr, item, index) { var arrRight=arr.slice(index,arr.length)…
3.在数组 arr 末尾添加元素 item.不要直接修改数组 arr,结果返回新的数组 主要考察数组的concat方法,代码如下: arr.concat(item); concat 方法不修改原数组. 4.删除数组 arr 最后一个元素.不要直接修改数组 arr,结果返回新的数组 function truncate(arr) { return arr.slice(0,arr.length-1); } slice 方法不修改原数组. 5.在数组 arr 开头添加元素 item.不要直接修改数组 a…
2.移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 function removeWithoutCopy(arr, item) { if(!Array.isArray(arr)) return -1; for(var i=0;i<arr.length;i++){ if(arr[i]==item){ arr.splice(i,1); i--; } } return arr; } 修改原数组,通过率100% 可以与上一个对比来看…
来自牛客网的js编程题 1.移除数组 arr 中的所有值与 item 相等的元素.不要直接修改数组 arr,结果返回新的数组 function remove(arr, item) { if(!Array.isArray(arr)) return -1; for(var i=0;i<arr.length;i++){ if(arr[i]==item){ arr.splice(i,1); i--; //这里是因为用splice删除一个元素之后,下一个元素替换当前元素的位置 } } return arr…
写在前面: 以下三选一: 阅读博文JavaScript 对象详解. 阅读<JavaScript权威指南>第6章. 阅读<JavaScript高级程序设计>第6章. 注意:只需要看"理解对象"(Understanding Objects)部分. 6.3 继承 OO语言继承方式 接口继承 实现继承 ECMAScript 只支持实现继承,而且其实现继承主要是依靠原型链. 6.3.1 原型链 回顾一下构造函数.原型.实例的关系: 每个构造函数都有一个原型对象,原型对象都…
1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src  type 描述代码内容Mine类型 默认就是text/javascript 没什么用   2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示   3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件…
  第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的…
数组是一段线性分配的内存,它通过整数计算偏移并访问其中的元素.大多数的语言都会要求一个数组的元素是相同类型,但JavaScript数组可以包含任意类型. var misc = ['string', null, true, 98.4, undefined, NaN,2, { object: true }, Infinity, ['dd', 'ss']]; console.log(misc.length); 长度 数组的length没有上界,如果用大于等于当前length的数字作为下标保存一个元素,…
这章主要讲解了数组的工作原理和其适用场景. 定义: 一个存储元素的线性集合,元素可以通过索引来任意存取,索引通常是数字,用来计算元素之间存储位置的偏移量. javascript数组的特殊之处: javascript中数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数,但是这些整数会被转化为字符串. 这是因为javascript中对象的属性必须死字符串类型. 1. 数组的基本操作  a) 创建数组 声明空的数组: // 1. 使用new关键字 var arr1 = new A…
<javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本书来补充下. 今天是今年的196天,由于我之前承诺过,每天分享读书笔记,只是之前分享的是大众读物,所以随手分享到kindle阅读群里了.但是现在读的是技术类书籍,分享到kindle读书群不太合适,所以还是以博客的形式分享.这样子,一个链接,大家感兴趣了就点开看看,不感兴趣了,就不点开. 其实这篇文章应该是昨天…
目录 一.对象 1.1 获取属性值的方式 1.2 获取动态生成的属性的值 二.数组 2.1 检测是否为数组 2.2 增加数组长度导致未赋值的位置为undefined 2.3 用闭包实现简易迭代器 三.作用域 3.1 函数作用域(局部变量) 3.2 不存在块级作用域 3.3 变量泄露 3.4 变量提升 3.5 临时作用域 四.闭包 4.1 操作闭包中的值 五.事件监听 六.类型检测 七.类型转换 八.URL编码 8.1 编码 8.2 解码 九.JSON格式 9.1 转为JSON格式 9.2 转为对…
<JavaScript面向对象编程指南(第2版)>读书笔记(一) <JavaScript面向对象编程指南(第2版)>读书笔记(二) 目录 一.基本类型 1.1 字符串 1.2 对象 1.3 原型 1.4 常用数学方法 二.DOM操作 2.1 节点编号.名称以及值 2.2 父节点.子节点和相邻节点 2.3 添加和删除节点 2.4 属性相关 2.5 DOM合集 2.6 DOM遍历 三.其他 3.1 事件 3.2 浏览器检测 3.3 三种弹窗方式 3.4 根据浏览器历史控制前进后退 3.…