JAVASCRIPT学习笔记



Similar documents
第2章 数据类型、常量与变量

《C语言基础入门》课程教学大纲

I

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

修改版-操作手册.doc

登录、注册功能的测试用例设计.doc

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

深圳市新亚电子制程股份有限公司

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>


,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

Template BR_Rec_2005.dot

用节点法和网孔法进行电路分析

一、资质申请

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

导 数 和 微 分 的 概 念 导 数 的 几 何 意 义 和 物 理 意 义 函 数 的 可 导 性 与 连 续 性 之 间 的 关 系 平 面 曲 线 的 切 线 和 法 线 导 数 和 微 分 的 四 则 运 算 基 本 初 等 函 数 的 导 数 复 合 函 数 反 函 数 隐 函 数 以

Microsoft Word - 第7章 图表反转形态.doc

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

Microsoft PowerPoint - plan03.ppt

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

教师上报成绩流程图

国债回购交易业务指引

生产支援功能 使用说明书(IP-110 篇)

全国艺术科学规划项目

4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,

2006年顺德区高中阶段学校招生录取分数线

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

 编号:

超 级 玛 丽 JAVA 小 游 戏 测 试 报 告 1. 导 言 1.1 编 写 目 的 该 文 档 的 目 的 是 描 述 超 级 玛 丽 JAVA 小 游 戏 的 系 统 测 试 的 总 结 报 告, 其 主 要 内 容 包 括 : 系 统 环 境 的 介 绍 功 能 的 实 现 的 测 试

2 熟 悉 Visual Basic 的 集 成 开 发 环 境 3 了 解 可 视 化 面 向 对 象 编 程 事 件 驱 动 交 互 式 开 发 等 基 本 概 念 4 了 解 Visual Basic 的 特 点 环 境 要 求 与 安 装 方 法 1 Visual Basic 开 发 应 用

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

珠江钢琴股东大会

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

电信系教学大纲的基本规范

三门峡市质量技术监督局清单公示

世华财讯模拟操作手册

火车浏览器脚本制作教程

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位

第二讲 数列

上海证券交易所会议纪要

工 程 造 价 咨 询 企 业 管 理 系 统 操 作 手 册 目 录 1 造 价 企 业 登 录 企 业 基 本 信 息 查 看 企 业 人 员 信 息 查 看 企 业 基 本 信 息 操 作 企 业 简 介 企 业 章

Microsoft Word - 文件汇编.doc

听 力 测 试 1 级 A 拍 出 考 官 所 弹 奏 乐 段 的 节 拍, 并 辨 认 是 二 拍 子 还 是 三 拍 子 考 官 会 开 始 弹 奏 乐 段, 考 生 应 尽 快 加 入, 拍 出 拍 子 并 突 出 强 拍 考 官 接 着 会 问 乐 曲 是 二 拍 子 还 是 三 拍 子 不

2 根 据 广 东 省 交 通 建 设 工 程 施 工 现 场 开 工 前 考 核 评 表 或 根 据 广 东 省 交 通 建 设 工 程 施 工 现 场 实 施 过 程 考 核 评 表 的 和 内 容 进 行 核 查 ; 3 现 场 抽 查 具 有 代 表 性 的 各 岗 位 人 员 ( 从 事

Microsoft Word - 第3章.doc

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

第3章 创建数据库

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常

2 任 务 目 标 任 务 实 施 学 一 学 安 全 用 电 1. 安 全 用 电 的 意 义 2. 人 体 触 电 的 基 本 知 识 1 2 1mA 10 30mA 50mA 100mA 750ms Hz

三武一宗灭佛研究

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

2.5 选 举 陈 晓 非 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.6 选 举 卢 婕 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.7 选 举 张 文 君 先 生 为 第 六 届 董 事 会 独 立 董 事 候 选 人 的 议 案

证券代码: 证券简称:长城电脑 公告编号:

秦川发展第五届第三次

Microsoft Word - 资料分析练习题09.doc

( 此 页 无 正 文, 为 广 东 东 方 精 工 科 技 股 份 有 限 公 司 关 于 提 供 资 料 真 实 准 确 和 完 整 的 承 诺 函 之 签 署 页 ) 广 东 东 方 精 工 科 技 股 份 有 限 公 司 法 定 代 表 人 : 唐 灼 林 2016 年 7 月 28 日

Microsoft PowerPoint - plan03.ppt


3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

注 意 : 如 上 图 所 示, 网 上 缴 费 (12 月 3 日 至 10 日 ) 与 春 季 高 考 现 场 确 认 工 作 (12 月 3 日 至 6 日 ) 同 时 进 行, 没 有 经 过 现 场 确 认 和 确 认 信 息 没 有 上 传 到 服 务 器 的 考 生 不 能 网 上 缴

如 何 开 始 使 用 Excel 2010 如 果 您 长 期 以 来 一 直 在 使 用 Microsoft Excel 2003, 则 对 于 在 Excel 2010 中 的 哪 些 地 方 可 找 到 Excel 2003 命 令 和 工 具 栏 按 钮, 肯 定 心 存 疑 问 我 们

国际财务报告准则第13号——公允价值计量

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

微软用户

声 明 中 国 银 行 间 市 场 交 易 商 协 会 ( 简 称 交 易 商 协 会 ) 颁 布 中 国 银 行 间 市 场 汇 率 衍 生 产 品 交 易 定 义 文 件 (2012 年 版 ) ( 简 称 汇 率 定 义 文 件 ), 旨 在 通 过 向 金 融 衍 生 产 品 市 场 参 与

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

学位论文文档编辑与提交

<4D F736F F D20B6C0C1A2B6ADCAC2D0ECCCFABEFDCFC8C9FABCB0CCE1C3FBC8CBC9F9C3F72E646F63>

附 件 : 上 海 市 建 筑 施 工 企 业 施 工 现 场 项 目 管 理 机 构 关 键 岗 位 人 员 配 备 指 南 二 一 四 年 九 月 十 一 日 2

全国教师资格认定管理信息系统

关于修订《沪市股票上网发行资金申购

中 国 社 会 科 学 年 第 期 历 程 第 页 以 下 只 注 页 码

党建评估

云信Linux SSH认证代理用户手册

徐天宏:《基因天堂》.doc

第 三 章 审 计 证 据 2

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论

抗 日 战 争 研 究 % 年 第 期! # # % %

<4D F736F F D20D0A3B7A2A1B A1B BAC5B9D8D3DAD7E9D6AFBFAAD5B9C8ABD0A3BDCCD6B0B9A4B8DACEBBC6B8D3C3B1E4B6AFB9A4D7F7B5C4CDA8D6AA2E646F63>

<4D F736F F D20D3A5D2EDC6DABBF5D6FACAD6CFB5CDB356312E302DD3C3BBA7CAB9D3C3CBB5C3F7CAE9>

程 序 由 语 句 构 成, 编 程 从 语 句 开 始

<4D F736F F D20A1B6C8DAD7CAC8DAC8AFBDBBD2D7CAB5CAA9CFB8D4F2A1B7D0DEB6A9BDE2B6C1A3A8C8DAD7CAC8DAC8AFD7A8C0B8A3A92E646F63>

上海证券交易所会议纪要

doc

<4D F736F F D20B3D6B2D6CFDEB6EEB1EDB8F1D7EED6D52E646F63>

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

教案格式模版

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

系统设计文档_样稿管理模块 V1.1_.doc

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

Transcription:

JAVASCRIPT 学 习 笔 记 mnstory.net 此 文 档 为 学 习 JAVASCRIPT 语 法 记 录 的 比 较, 学 习 教 材 为 阮 一 峰 开 源 的 JavaScript 标 准 参 考 教 程 一 书 语 法 部 分 http://javascript.ruanyifeng.com/ 语 句 一 条 语 句 以 换 行 或 分 号 结 束, 和 SHELL 语 法 一 样, 所 有, 分 号 可 写 可 不 写,JS 解 释 器 会 自 动 给 你 添 加, 这 里 说 的 自 动 还 是 比 较 智 能 的, 比 如 : var str = "i love" + " you " + 533 + str str console console. log (str) 它 也 能 判 断 正 确, 解 析 为 : var str="i love you " + 533 + str; str; console; console.log(str); 其 原 则 是, 没 有 分 号, 能 和 下 行 连 接 到 一 起, 且 语 法 有 意 义 才 会 连 接 这 里 注 意 一 点,return 要 返 回 的 数 据, 不 能 单 独 成 行, 因 为 按 照 JS 添 加 分 号 的 原 则 : return 3 解 析 成 了 : return; 3; function returnok() { return 3

function returnnon1() { return 3 function returnnon2() { return +3 function returnnon3() { return (3) function returnnon4() { return {3; console.log(returnok()) //3 console.log(returnnon1()) //undefined console.log(returnnon2()) //undefined console.log(returnnon3()) //undefined console.log(returnnon4()) //undefined 变 量 声 明 提 升, 函 数 定 义 提 前 var 关 键 字 声 明 的 变 量,javascript 会 将 其 声 明 ( 注 意, 是 声 明 而 非 定 义 ) 提 到 代 码 开 始 处, 这 叫 变 量 声 明 提 升 例 如 : console.log(var1) var var1 = "var1 value" 提 升 后, 其 实 为 : 输 出 : var var1 console.log(var1) var1 = "var1 value" >node hello.js undefined 虽 然 javascript 里, 声 明 变 量 可 使 用 var, 也 可 以 不 使 用 var, 但 是, 不 使 用 var 的, 是

不 会 有 变 量 声 明 提 升 功 能 的, 例 如 : console.log(var1) var1 = "var1 value" 执 行 会 报 错,var1 is not defined hello.js:1 function (exports, require, module, filename, dirname) { console.log(var1) ReferenceError: var1 is not defined at Object.<anonymous> (hello.js:1:75) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3 ^ 对 于 函 数 定 义, 使 用 了 var 同 样 有 声 明 提 升 ( 只 提 升 声 明 而 非 定 义 ), 如 果 不 使 用 var 方 式 定 义 函 数, 此 函 数 的 定 义 会 被 提 前 到 代 码 开 始 ( 定 义 本 身 提 前 ), 例 如 : console.log(funcnovar) //[Function: funcnovar] console.log(funcvar) //undefined funcnovar() //funcnovar called funcvar() //TypeError: undefined is not a function function funcnovar() { console.log("funcnovar called") var funcvar = function () { console.log("funcvar called") 相 当 于 : var funcvar function funcnovar() { console.log("funcnovar called") console.log(funcnovar) console.log(funcvar) funcnovar() funcvar() funcvar = function () {

console.log("funcvar called") 输 出 : >node hello.js [Function: funcnovar] undefined funcnovar called hello.js:4 funcvar() ^ TypeError: undefined is not a function at Object.<anonymous> (hello.js:4:1) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3 如 果 多 次 采 用 function 命 令, 重 复 声 明 同 一 个 函 数, 则 后 面 的 声 明 会 覆 盖 前 面 的 声 明 函 数 内 部 的 变 量 提 升 与 全 局 作 用 域 一 样, 函 数 作 用 域 内 部 也 会 产 生 变 量 提 升 现 象 var 命 令 声 明 的 变 量, 不 管 在 什 么 位 置, 变 量 声 明 都 会 被 提 升 到 函 数 体 的 头 部 function foo(x,y) { if (x > 100) { var z = x - 100; console.log("x,y,z="+x+","+y+","+z) 这 样 定 义 的 函 数, 等 同 于 var z 提 前 声 明 到 foo 函 数 的 开 始 处 foo() foo(50) foo(400) foo(400,44) foo(400,44,66) foo(undefined,44,66) foo(null,44) //x,y,z=undefined,undefined,undefined //x,y,z=50,undefined,undefined //x,y,z=400,undefined,300 //x,y,z=400,44,300 //x,y,z=400,44,300 //x,y,z=undefined,44,undefined //x,y,z=null,44,undefined

变 量 名 变 量 命 名, 相 对 c 语 言 来 说, 多 了 允 许 $ 开 头, 也 可 以 用 中 文, 当 然 本 语 言 的 关 键 字 是 不 能 用 的, 例 如 : var $i = 44 var 名 字 = " 你 的 名 字?" console.log($i) console.log( 名 字 ) 输 出 : >node hello.js 44 你 的 名 字? Question: undefined 是 关 键 字 吗? var undefined = "change undefined identify" 输 出 : console.log(undefined) >node hello.js change undefined identify 表 明 undefined 并 非 关 键 字 作 用 域 被 大 括 号 刮 起 来 的 一 段 代 码 与 大 多 数 编 程 语 言 不 一 样,JavaScript 的 区 块 不 构 成 单 独 的 作 用 域 (scope) 也 就 是 说, 区 块 中 的 变 量 与 区 块 外 的 变 量, 属 于 同 一 个 作 用 域 Javascript 只 有 两 种 作 用 域 : 一 种 是 全 局 作 用 域, 变 量 在 整 个 程 序 中 一 直 存 在 ; 另 一 种 是 函 数 作 用 域, 变 量 只 在 函 数 内 部 存 在 类 型 typeof var declarevar console.log(typeof declarevar) console.log(typeof notdeclarevar) console.log(typeof undefined) //undefined //undefined //undefined

var func = function(){ console.log(typeof func) console.log(typeof function(){) //function //function console.log(typeof []) console.log(typeof {) console.log(typeof new func) console.log(typeof null) //object //object //object //object console.log(typeof NaN) console.log(typeof 0) //number //number console.log(typeof "") console.log(typeof '') console.log(typeof typeof 1) //string //string //string console.log(typeof true) console.log(typeof false) //boolean //boolean boolean 在 布 尔 表 达 式 中, 这 些 值 undefined,null,false,0( 包 括 +0/-0),NaN,"",'' 默 认 转 换 为 false, 其 他 的 都 为 true if ([]) console.log("[] true") if ({) console.log("{ true") if (!"") console.log("\"\" false") if (!'') console.log("'' false") if (!NaN) console.log("nan false") //if (notdeclarevar) console.log("notdeclarevar ERROR") Number JavaScript 内 部, 所 有 数 字 都 是 以 64 位 浮 点 数 形 式 储 存, 即 使 整 数 也 是 如 此 所 以,1 与 1.0 是 相 等 的, 而 且 1 加 上 1.0 得 到 的 还 是 一 个 整 数, 不 会 像 有 些 语 言 那 样 变 成 小 数 1 === 1.0 // true 1 + 1.0 // 2 由 于 浮 点 数 不 是 精 确 的 值, 所 以 涉 及 小 数 的 比 较 和 运 算 要 特 别 小 心 0.1 + 0.2 === 0.3 // false 0.3 / 0.1 // 2.9999999999999996 (0.3-0.2) === (0.2-0.1) // false 大 于 2 的 53 次 方 以 后, 整 数 运 算 的 结 果 开 始 出 现 错 误 所 以, 大 于 等 于 2 的 53 次 方 的 数

值, 都 无 法 保 持 精 度 console.log(number.max_value) // 1.7976931348623157e+308 console.log(number.min_value) // 5e-324-0 === +0 // true 但 是 (1/+0) === (1/-0) // false 因 为 除 以 正 零 得 到 +Infinity, 除 以 负 零 得 到 -Infinity NaN 不 等 于 任 何 值, 包 括 它 本 身 NaN === NaN // false isnan 方 法 可 以 用 来 判 断 一 个 值 是 否 为 NaN isnan(nan) // true isnan(123) // false isnan("hello") // true 相 当 于 isnan(number("hello")) // true 转 换 为 Number, 容 易 混 淆 的 : 1.undefined 转 换 为 NaN 而 null 转 换 为 0 2."0123" 按 十 进 制 转 换 为 123 而 0123 按 八 进 制 转 换 为 291 3. 对 数 字 而 言,.123 自 动 补 全 为 0.123;123. 自 动 补 全 为 123.0 4. 对 字 符 串 而 言,Number 转 换 也 遵 从 此 规 律,parseInt 不 补 全 前 点 号 的 情 况, 例 如 Number(".123") = 123 而 parseint(".123") = NaN 5. 如 果 传 入 的 参 数 为 object 类 型, 会 调 用 其 valueof 方 法, 如 果 valueof 的 结 果 为 数 字, 字 符 串, 布 尔 值, 直 接 调 用 Number 如 果 valueof 的 结 果 是 复 合 类 型, 调 用 复 合 类 型 的 tostring, 再 调 用 Number ------------------------------- 输 入 参 数 Number 结 果 parseint 结 果 描 述 ------------------------------- 0 0 0 "0" 0 0 0. 0 0 "0." 0 0.0 0 0 ------------------------------- ".0" 0 NaN parseint 不 认 为 点 开 始 的 为 数 字 -------------------------------

0 NaN 空, "", '', null, false Number 将 其 认 为 是 0 "" 0 NaN parseint 将 其 认 为 是 NaN '' 0 NaN null 0 NaN false 0 NaN ------------------------------- undefined NaN NaN undefined 在 哪 儿 都 是 NaN 而 null 在 Number 看 来 是 0 "undefined" NaN NaN "." NaN NaN "true" NaN NaN "false" NaN NaN "abc" NaN NaN "abc123" NaN NaN ------------------------------- "123abc" NaN 123 数 字 开 头 的,number 认 为 是 NaN parseint 会 尽 可 能 解 析 为 数 字 "0123" 123 123 ------------------------------- 0123 83 83 对 字 符 串 而 言, 没 有 八 进 制 而 数 字 本 身 会 自 动 转 换 "123." 123 123 123. 123 123 "0x123" 291 291 0x123 291 291 ------------------------------- " \t12.3\n" 12.3 12 都 可 以 trim 掉 字 符 串 前 后 的 空 格, 区 别 是 : 一 个 是 转 换 成 Number, 结 果 可 以 是 float.123 0.123 0 一 个 是 parseint, 结 果 只 能 是 int ".123" 0.123 NaN -------------------------------

true 1 NaN true 在 Number 里 是 1, 在 parseint 里 是 NaN String 1. 数 字 转 为 相 应 的 字 符 串 2. true, false, undefined, null 转 换 为 对 应 字 符 串 3. 如 果 传 入 的 参 数 为 object 类 型, 会 调 用 其 tostring 方 法, 如 果 tostring 的 结 果 为 数 字, 字 符 串, 布 尔 值, 直 接 连 接 如 果 tostring 的 结 果 是 复 合 类 型, 调 用 复 合 类 型 的 valeof, 再 连 接 Error 自 动 抛 出 的 error 有 三 个 成 员 : name: 错 误 名 称 message: 错 误 提 示 信 息 stack: 错 误 的 堆 栈 ( 非 标 准 属 性, 但 是 大 多 数 平 台 支 持 ) Error 有 6 个 子 类 型 : 1. SyntaxError 是 解 析 代 码 时 发 生 的 语 法 错 误 2. ReferenceError 是 引 用 一 个 不 存 在 的 变 量 时 发 生 的 错 误 3. RangeError 是 当 一 个 值 超 出 有 效 范 围 时 发 生 的 错 误 4. TypeError 是 变 量 或 参 数 不 是 预 期 类 型 时 发 生 的 错 误 5. URIError 是 URI 相 关 函 数 的 参 数 不 正 确 时 抛 出 的 错 误 6. EvalError 是 eval 函 数 没 有 被 正 确 执 行 时 抛 出 的 错 误 还 可 以 继 承 自 Error 自 定 义 错 误 : function UserError(message) { this.message = message " 默 认 信 息 "; this.name = "UserError"; UserError.prototype = new Error(); UserError.prototype.constructor = UserError; 上 面 代 码 自 定 义 一 个 错 误 对 象 UserError, 让 它 继 承 Error 对 象 然 后, 就 可 以 生 成 这 种 自 定 义 的 错 误 了 new UserError(" 这 是 自 定 义 的 错 误!"); throw 可 以 throw 任 何 类 型 的 东 西, 但 是 最 好 throw new Error(' 出 错 了!');

传 值 和 传 引 用 原 始 类 型 是 值 传 递 var foo = 1; var fooback = foo; function cantmodifyvar(v) { v = 2 cantmodifyvar(foo); console.log("foo("+fooback+"->"+foo+")"); //foo(1->1) 复 合 类 型, 类 似 C 语 言 传 指 针 差 不 多 var arr = [1,2,3]; var arrback = arr; // 这 里 也 是 赋 值 的 变 量 地 址 function cantmodifyarr(v) { v = ["a", "b", "c"] cantmodifyarr(arr); console.log("arr("+arrback+"->"+arr+")"); //arr(1,2,3->1,2,3) function modifyarrcontent(v) { v[1] = "changed"; modifyarrcontent(arr); console.log("arr("+arrback+"->"+arr+")"); //arr(1,changed,3->1,changed,3) arguments function argtest(x) { //callee 代 表 argments 所 在 的 函 数 console.log("arguments.callee.name = " + arguments.callee.name) //arguments.callee.name = argtest console.log("arguments.length = "+arguments.length); //arguments.length = 2 console.log("arguments[0] = "+arguments[0]); //arguments[0] = 1 console.log("arguments[1] = "+arguments[1]); //arguments[1] = 2 console.log("arguments[2] = "+arguments[2]); //arguments[2] = undefined

argtest(1, 2) arguments 并 不 是 一 个 数 组, 而 是 一 个 对 象, 有 是 需 要 将 其 转 换 为 数 组 :var args = Array.prototype.slice.call(arguments); 闭 包 闭 包 的 特 点 在 于, 在 函 数 外 部 可 以 读 取 函 数 的 内 部 变 量 function f() { var v = 1; var c = function (){ ; return v; return c; var o = f(); o();// 1 上 面 代 码 表 示, 原 先 在 函 数 f 外 部, 我 们 是 没 有 办 法 读 取 内 部 变 量 v 的 但 是, 借 助 闭 包 c, 可 以 读 到 这 个 变 量 立 即 调 用 函 数 (function(){ /* code */ ()); 或 者 (function(){ /* code */ )(); 但 不 是 function(){ /* code */ (); // SyntaxError: Unexpected token ( 它 的 目 的 有 两 个 : 一 是 不 必 为 函 数 命 名, 避 免 了 污 染 全 局 变 量 ; 二 是 IIFE 内 部 形 成 了 一 个 单 独 的 作 用 域, 可 以 封 装 一 些 外 部 无 法 读 取 的 私 有 变 量 对 象 所 谓 对 象, 就 是 一 种 无 序 的 数 据 集 合, 由 若 干 个 键 值 对 (key-value) 构 成 var name = "nameval"; var me = { 180 : "cm", // 键 会 自 动 转 换 为 字 符 串 name : "coder", // 不 会 把 name 当 成 变 量, 直 接 转 换 成 "name" "name" : "coder 2", // 都 是 后 一 个 冲 掉 前 一 个 foo : "bar", age: 1024,

; action: function(x) { console.log("you call me? "+x); // 为 了 兼 容 老 浏 览 器, 最 后 一 个 属 性 后 面 的 逗 号 不 能 加 (e.g IE8) me.color = "red" // 这 样 写 也 可 以 //delete 命 令 只 能 删 除 对 象 本 身 的 属 性, 不 能 删 除 继 承 的 属 性 //delete 命 令 也 不 能 删 除 var 命 令 声 明 的 变 量, 只 能 用 来 删 除 属 性 delete me.foo delete me.notexist console.log(object.keys(me)); //[ '180', 'name', 'age', 'action', 'color' ] for (i in me){ //in 运 算 符 用 于 检 查 对 象 是 否 包 含 某 个 属 性, 例 如 name in me 返 回 ture, 与 for 结 合, 可 遍 历 console.log(i + "\t= " + me[i]); 输 出 结 果 : 180 = cm name = coder 2 age = 1024 action = function (x) { console.log("you call me? "+x); color = red 运 算 符 数 值 运 算 符 (+) 同 样 使 用 加 号, 但 是 加 法 运 算 符 是 二 元 运 算 符 ( 需 要 两 个 操 作 数 ), 它 是 一 元 运 算 符 ( 只 需 要 一 个 操 作 数 ) 它 的 重 要 作 用 在 于 可 以 将 任 何 值 转 为 数 值 ( 与 Number 函 数 的 作 用 相 同 ) +true // 1 +[] // 0 +{ // NaN 两 个 运 算 子 之 中 有 一 个 是 字 符 串, 另 一 个 运 算 子 就 会 被 自 动 转 为 字 符 串 加 法 运 算 符 以 外 的 其 他 算 术 运 算 符, 都 不 会 发 生 重 载 它 们 的 规 则 是 : 所 有 运 算 子 一 律 转 为 数 值, 再 进 行 相 应 的 数 学 运 算 于 是 : 1 - "1" // 0 +"3" // 3 -true // -1

var now = new Date(); typeof (now + 1) // "string" typeof (now - 1) // "number" 加 法 运 算 时,now 转 为 字 符 串, 加 一 个 数 字, 得 到 还 是 字 符 串 ; 减 法 运 算 时,now 转 为 数 值, 减 一 个 数 字, 得 到 的 是 数 字 余 数 运 算 结 果 的 正 负 号 由 第 一 个 运 算 子 的 正 负 号 决 定 -1 % 2 // -1 1 % -2 // 1 Javascript 有 两 组 相 等 运 算 符, 一 组 是 == 和!=, 另 一 组 是 === 和!== 前 者 只 比 较 值 的 相 等, 后 者 除 了 值 以 外, 还 比 较 类 型 是 否 相 同 请 尽 量 不 要 使 用 前 一 组, 永 远 只 使 用 === 和!== 因 为 == 默 认 会 进 行 类 型 转 换, 规 则 十 分 难 记 如 果 你 不 相 信 的 话, 请 回 答 下 面 五 个 判 断 式 的 值 是 true 还 是 false: false == 'false' false == undefined false == null null == undefined 0 == '' 前 三 个 是 false, 后 两 个 是 true if(1!== "1") { console.log('1!== "1"'); 这 里 做 自 动 类 型 转 换 if(1 == "1") { console.log('1 == "1"'); 相 等 运 算 符 == 的 自 动 转 换 规 则 : 如 果 类 型 不 一 样, 原 始 类 型 的 数 据 会 转 换 成 数 值 类 型 再 进 行 比 较 对 象 ( 这 里 指 广 义 的 对 象, 包 括 数 值 和 函 数 ) 与 原 始 类 型 的 值 比 较 时, 对 象 转 化 成 原 始 类 型 的 值, 再 进 行 比 较 [1] == 1 // true [1] == "1" // true [1] == true // true 上 面 代 码 将 只 含 有 数 值 1 的 数 组 与 原 始 类 型 的 值 进 行 比 较, 数 组 [1] 会 被 自 动 转 换 成 数 值 1, 因 此 结 果 都 是 true 位 运 算 符 Javascript 完 全 套 用 了 Java 的 位 运 算 符, 包 括 按 位 与 & 按 位 或 按 位 异 或 ^ 按 位 非 ~ 左 移 << 带 符 号 的 右 移 >> 和 用 0 补 足 的 右 移 >>> 这 套 运 算 符 针 对 的 是 整 数, 所 以 对 Javascript 完 全 无 用, 因 为 Javascript 内 部, 所 有 数 字 都 保 存 为 双 精 度 浮 点 数

如 果 使 用 它 们 的 话,Javascript 不 得 不 将 运 算 数 先 转 为 整 数, 然 后 再 进 行 运 算, 这 样 就 降 低 了 速 度 而 且 " 按 位 与 运 算 符 "& 同 " 逻 辑 与 运 算 符 "&&, 很 容 易 混 淆 9. function 语 句 在 Javascript 中 定 义 一 个 函 数, 有 两 种 写 法 : 和 function foo() { var foo = function () { 两 种 写 法 完 全 等 价 但 是 在 解 析 的 时 候, 前 一 种 写 法 会 被 解 析 器 自 动 提 升 到 代 码 的 头 部, 因 此 违 背 了 函 数 应 该 先 定 义 后 使 用 的 要 求, 所 以 建 议 定 义 函 数 时, 全 部 采 用 后 一 种 写 法 undefined 和 null null 表 示 " 没 有 对 象 ", 即 该 处 不 应 该 有 值 (1) 作 为 函 数 的 参 数, 表 示 该 函 数 的 参 数 不 是 对 象 (2) 作 为 对 象 原 型 链 的 终 点 Object.getPrototypeOf(Object.prototype) // null undefined 表 示 " 缺 少 值 ", 就 是 此 处 应 该 有 一 个 值, 但 是 还 没 有 定 义 (1) 变 量 被 声 明 了, 但 没 有 赋 值 时, 就 等 于 undefined (2) 调 用 函 数 时, 应 该 提 供 的 参 数 没 有 提 供, 该 参 数 等 于 undefined (3) 对 象 没 有 赋 值 的 属 性, 该 属 性 的 值 为 undefined (4) 函 数 没 有 返 回 值 时, 默 认 返 回 undefined var i; i // undefined function f(x){console.log(x) f() // undefined var o = new Object(); o.p // undefined var x = f(); x // undefined undefined 和 null 与 其 他 类 型 的 值 比 较 时, 结 果 都 为 false, 它 们 互 相 比 较 时 结 果 为 true false == null // false 0 == null // false undefined == null // true '' == '0' // false, 因 为 两 边 都 是 字 符 串, 不 需 要 转 换 0 == '' // true, 因 为 '' 转 换 为 整 数 是 0 0 == '0' // true false == 'false' // false

false == '0' // true false == undefined // false false == null // false null == undefined ' \t\r\n ' == 0 // true // true 两 个 复 合 类 型 ( 对 象 数 组 函 数 ) 的 数 据 比 较 时, 不 是 比 较 它 们 的 值 是 否 相 等, 而 是 比 较 它 们 是 否 指 向 同 一 个 对 象 ({) === { // false [] === [] // false (function (){) === function (){ // false void 在 大 多 数 语 言 中,void 都 是 一 种 类 型, 表 示 没 有 值 但 是 在 Javascript 中,void 是 一 个 运 算 符, 接 受 一 个 运 算 数, 并 返 回 undefined void 0; // undefined 这 个 命 令 没 什 么 用, 而 且 很 令 人 困 惑, 建 议 避 免 使 用 下 面 是 void 运 算 符 的 一 个 例 子 var x = 3; void (x = 5) //undefined x // 5 这 个 运 算 符 主 要 是 用 于 书 签 工 具 (bookmarklet) 或 者 用 于 在 超 级 链 接 中 插 入 代 码, 目 的 是 返 回 undefined 可 以 防 止 网 页 跳 转 javascript:void window.open("http://example.com/") 比 如, 下 面 是 常 用 于 网 页 链 接 的 触 发 鼠 标 点 击 事 件 的 写 法 <a href="#" onclick="f();"> 文 字 </a> 上 面 代 码 有 一 个 问 题, 函 数 f 必 须 返 回 false, 或 者 onclick 事 件 必 须 返 回 false, 否 则 会 引 起 浏 览 器 跳 转 到 另 一 个 页 面 function f(){ // some code 或 者 写 成 return false; <a href="#" onclick="f();return false;"> 文 字 </a> void 运 算 符 可 以 取 代 上 面 两 种 写 法 <a href="javascript:void(0)" onclick="f();"> 文 字 </a> 2014/11/17