精读《javascript高级程序设计》笔记一——基本概念
语法
- 严格模式 启用严格模式,在脚本顶部或函数内部上方添加"use strict";语句.
数据类型
- typeof
typeof返回undifined,boolean,number,string,object,function六种字符串,typeof null会返回"object".
- 数据类型包括六种:undefined,null,boolean,number,string,object
- undefined
- null
尽管null与undefined比较相等,但用途不同.一个用来保存对象的变量还没有被赋值,应当让变量保存为null.
- boolean
数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 ""(空字符串) Number 任何非零数字值(包括无穷大) 0和NaN Object 任何对象 null Undefined 无任何情况 Undefined - number
八进制表示:数字前加0,八进制在严格模式下是无效的.
十六进制表示:数字前加0x.
Infinity和-Infinity表示正负无穷大.
NaN(非数值)与任何数都不相等.
- String
\n 换行 \t 制表 \b 空格 \r 回车 \f 进纸 \\ 斜杠 \' 单引号 \" 双引号 \xnn 以十六进制nn表示的一个字符(其中n为0~F).例如\x41表示A \unnnn 以十六进制nnnn表示的一个Unicode字符(其中n为0~F).例如\u03a3表示希腊字符Σ toString()方法,可以传入一个参数的基数,如二进制,num.toString(2);
若不知要转换的值是不是null或undefined,可使用String()函数,如果值不是null或undefined则调用toString()方法,null返回"null",undefined返回"undefined";
把某个值转换为字符串,可使用 +"" 的方法;
- Object
Object实例的通用属性方法 Constructor 保存着用于创建当前对象的函数.如Object() hasOwnProperty(propertyName) 用于检查给定的属性在当前对象实例(而不是在实例的原型中)中是否存在,propertyName必须以字符串的形式指定.如o.hasOwnProperty("name") isPropertyOf(Object) 用于检查传入对象是否是另一个对象的原型 propertyIsEnumerable(propertyName) 用于检查是否能够使用for-in语句来枚举,propertyName必须以字符串的形式指定. toLocalString() 返回该对象的字符串对象 toString() 返回该对象的字符串对象 valueOf() 返回该对象的字符串、数值或布尔值表示,通常与toString()值相同
操作符
- 对非数值应用一元加操作符时,该操作对象会像Number()转型函数一样对这个值进行转换.
- 按位非的本质:操作数的负值减1
- 逻辑与(&&)操作符:
如果第一个是对象,则返回第二个操作数
如果第二个是对象,则只有在第一个操作数为true的情况下返回该对象
两个操作数都是对象,则返回第二个操作数
有一个操作数是null返回null
有一个操作数是NaN返回NaN
有一个操作数是undefined返回undefined
- 逻辑或(||)操作符
如果第一个操作数是对象,则返回第一个操作数
如果第一个操作数的求值结果为false,则返回第二个操作数
如果两个操作数都是对象,则返回第一个操作数
如果两个操作数都是null,则返回null
如果两个操作数都是NaN,则返回NaN
如果两个操作数都是undefined,则返回undefined
利用逻辑或的这一行为来避免为变量赋值null或undefined值,如: var myObject = prrfferredObject || backupObject
代码和笔记git地址:git@code.csdn.net:mid__summer/pjwd.git
精读《javascript高级程序设计》笔记一——基本概念的更多相关文章
- javascript高级编程笔记01(基本概念)
1.在html中使用JavaScript 1. <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...
- javascript高级编程笔记02(基本概念)
ParseInt()函数: 由于Number函数在转换字符串时比较复杂而且不合理,我们常常转换字符串都用parseInt函数, Parseint函数规则: 忽略字符串前面的空格,直到找到第一个非空格字 ...
- JavaScript高级程序设计笔记之面向对象
说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...
- javascript高级程序设计--笔记01
概述 JavaScript的实现包含三个部分: 1 核心(ECMAScript) 提供核心语言功能 2 文档对象模型(DOM) 一套提供了访问以及操作网页内容的API 3 浏览器对象模型( ...
- JavaScript高级程序设计笔记(一)
---恢复内容开始--- 前三章为基础知识,为了方便以后查看,所以比较啰嗦.这里对函数的基本操作没有记录. 1.JavaScript的实现 虽然 JavaScript 和 ECMAScript 通常都 ...
- JavaScript高级程序设计笔记 事件冒泡和事件捕获
1.事件冒泡 要理解事件冒泡,就得先知道事件流.事件流描述的是从页面接收事件的顺序,比如如下的代码: <body> <div> click me! </div> & ...
- javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记
1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获 ...
- Javascript高级程序设计笔记(很重要尤其是对象的设计模式与继承)
var obj = {'a':'a'}; var fun = function (){} console.log(typeof obj);//object console.log(typeof fun ...
- <javascript高级程序设计>笔记
1.要讲一个值转换成其对应的Boolean类型 ,可以调用转型函数Boolean(). var message=“hello world!”; var messageAsBoolean=Boolean ...
- javascript高级编程笔记04(基本概念)
Function类型 Es5中规范了另一个函数对象的属性:caller,这个属性中保存着调用当前函数的函数的引用,如果是在全局作用域中调用当前函数,这它的值为null function outer() ...
随机推荐
- Sublime 学习记录(一) Sublime 的快捷键
Ctrl + Shift + P : 打开命令面板 Ctrl + P : 搜索项目中的文件 Ctrl + W : 关闭当前打开的文件 Ctrl + G : 跳转到第几行 Ctrl + Shift + ...
- JQuery————基础&&基础选择器
环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...
- 使用Open Live Writer 的代码高亮插件体验
由于windows live writer 2012 已经停止服务,转而推出开源项目Open Live Writer .虽然Open Live Writer 也没怎么更新,官网更是一个插件都没有放出来 ...
- 使用 VB.NET 开发多线程
摘要:.NET 框架提供了新的类,可以方便地创建多线程应用程序.本文介绍如何使用 Visual Basic® .NET 的多线程编程技术来开发效率更高.响应速度更快的应用程序. 目录 简介 多线程处理 ...
- 诡异的_DEBUG宏
学习VLD1.0代码,发现Release版本的代码_DEBUG宏是已定义的,查找工程配置确只有NDEBUG宏的定义,不见_DEBUG的踪影. 好吧,最后发现是由于工程Code Generation选项 ...
- Unix下C程序内存泄露检测工具:valgrind的安装使用
Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...
- PHP获取IP信息
<?php /** * 获取客户端IP * @param integer $type 返回类型 0:string,1:long * @return string|long */ function ...
- Python:staticmethod vs classmethod
Being educated under Java background, static method and class method are the same thing. But not so ...
- C的陷阱和缺陷研读笔记02
宏: 宏不是函数 展开会产生庞大的表达式 #define MIN(A,B) ((A) <= (B) ? (A) : (B))MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面 ...
- UITableViewCell性能优化
5.UITableViewCell性能优化 > 定义一个循环利用标识 static NSString *ID = @"C1"; > 从缓存池中取出可循环利用的cell ...