javascript权威指南笔记--javascript语言核心(一)
1.javascript的数据类型分为两类:原始类型和对象类型。
原始类型包括字符串、数字、布尔值、null、undefined。
对象是属性的集合,每个对象都由“名/值”对构成。数组和函数是特殊的对象。
javascript核心定义了三种有用的类:日期类、正则类、错误类。
2.整型直接量:
16进制直接量以“0x”或“0X”开头,如0xff。
8进制直接量以“0”开头,如0377。(注:某些javascript的实现不支持八进制,所以最好不使用)
3.javascript中的算术运算:
Math.round();//四舍五入
Math.ceil();//向上取整
Math.floor();//向下取整
4.Infinity表示正无穷大,NaN表示非数字值。
NaN和任何值都不相等,包括它自己。
没办法通过x==NaN来判断x是否是数值类型,应当用x!=x来判断。
5.字符串可以接收RegExp参数的方法:
var text = "testting:1,2,3,4";
var pattern = /\d+/g;//匹配包含一个或多个数字的实例
pattern.test(text);//true
text.search(pattern);//9,首次匹配成功位置
text.match(pattern);//["1","2","3","4"],所有匹配组成的数组
text.replace(pattern,"#");//“testting:#,#,#,#”
text.split(/\D+/);//["","1","2","3","4"]用非数字字符截取字符串
6.会被转换成false的值:null,undefined,0,-0,NaN,"",其他值(包括对象、数组)都会被转换成true。
7.undefined和null:
undefined表示变量没有初始化,如果要查询对象属性或数组元素的时候返回undefined,则说明这个属性或元素不存在。
如果函数没有返回任何值,则返回undefined。
应该用===来区分null和undefined。
undefined是意料之外的空缺,而null是意料之中的空缺。通常要将他们赋值给变量或属性的时候选择null最佳。
8.包装对象:
var str = "abc";
str.len = 4;
var t = str.len;
console.log(t);//undefined
创建了一个临时字符串对象,随即销毁这个对象。所以后面再访问这个对象就不存了。
var S = new String(s);
console.log(typeof(s));//String
console.log(typeof(S));//object
console.log(s==S);//true
console.log(s===S);//false
9.不可变的原始值:任何方法都无法修改null、undefined、boolean、字符串、数字。
并没有办法用来比较它们。
10.可变的对象:它们的值是可修改的。
即使两个对象包含同样的属性,且属性的值完全相同,它们也不是相等的。
各个索引元素完全相等的两个数组也不是相等的。
当且仅当它们引用同一个基对象时,它们才相等:
var a = [1,2,3];
var b = a;
b[0]=1;
a[0]//1
a===b//true
将一个对象显示地赋值给一个变量,仅仅是将对象的引用值赋给了变量,对象本身并没有被复制。
要想得到一个对象的副本,需要显示地复制对象的每个属性或数组的每个元素:
var c = ['a','b','c'];
var d = [];
for(var i = 0; i < c.length; i++) {
d[i]=c[i];
}
如果我们想比较两个单独的对象或数组,必须比较它们的属性或元素。
11.类型转换:(加粗的地方需要特别注意)

12.隐式转换:
x+""//等价于String(x);
+x//等价于Number(x);
!!x//等价于Boolean(x);
13.除了null和undefined之外的任何值都具有toString()方法,这个方法的执行结果通常和String()方法一样。
14.toString()方法可将数字转化成其他进制数,不指定参数默认转成十进制:
var n = 17;
n.toString(2);//"10001"
n.toString(8);//"21"
n.toString(16);//"11"
15.toFixed()方法根据小数点后的指定位数将数字转化成字符串,并适当地四舍五入或填零:
var m = 123.234;
m.toFixed(0);//"123"
m.toFixed(2);//"123.23"
m.toFixed(5);//"123.23400"
16.Number()方法将字符串转换成整数或浮点数,但是字符串不能出现非法的尾随字符,此方法基于十进制进行转换。
parseInt()和parseFloat()是全局方法,会尽可能多地跳过字符串前面的空格,并忽略后面的字符串:
parseInt(" 3 meters");//3
parseInt("0xff");//255
parseFloat(".1");//0.1
parseInt("0.1");//0
parseIn(".1");//NaN,数字不能以.开头
parseFloat("$0.1");//NaN,数字不能以$开头
javascript权威指南笔记--javascript语言核心(一)的更多相关文章
- javascript权威指南笔记--javascript语言核心(四)
对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; c ...
- javascript权威指南笔记--javascript语言核心(三)
1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到 ...
- javascript权威指南笔记--javascript语言核心(二)
1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...
- javascript权威指南笔记--javascript语言核心(六)
通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性 ...
- javascript权威指南笔记--javascript语言核心(五)--getter和setter属性
getter和setter属性: var p = { x:1.0, y:1.0, get r(){ return Math.sqrt(this.x*this.x + this.y * this.y); ...
- 1.语言概述-JavaScript权威指南笔记
上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...
- 2.语言概述-JavaScript权威指南笔记
上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...
- javascript权威指南笔记
最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...
- 2.词法结构-JavaScript权威指南笔记
今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASC ...
随机推荐
- 160918、BigDecimal运算
java.math.BigDecimal.BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a doubl ...
- TI CC2541的狗日的Key
被突如其来的一个bug困扰了好几天, 起因是, 按键接的红外接收器, 结果发现, 一旦按下之后, IEN1, P0IE的标识位bit5, 被不知道特么的谁归0了, 也就是说, 按键只能被按下一次, 再 ...
- iptables的四表五链
iptables只是Linux防火墙的管理工具而已,位于/sbin/iptables.真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构. iptables包含4个表, ...
- 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.10.Button 和 Autocomplete控件
Button ,可以使用 <button> <input> <a>. <input> 中的不同类型,submit , radio , checkbox ...
- java 编程时候的性能调优
一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util ...
- SortedDictionary和SortedList
使用上两者的接口都类似字典,并且SortedList的比如Find,FindIndex,RemoveAll常用方法都没提供. 数据结构上二者差异比较大,SortedList查找数据极快,但添加新元素, ...
- Winsock系列函数 及 Socket通信流程
Socket是一种网络通信机制 Winsock系列函数 1. Socket 创建socket 2. Connect 尝试连接远端Socket 3. Send 在某个Socket 向远端 ...
- html 标签学习
form 属性 定义和用法 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlencod ...
- anroid
http://mirrors.neusoft.edu.cn/more.we#android http://www.cnblogs.com/youxilua/archive/2013/05/20/308 ...
- MUI 框架微信支付
在MUI 框架中实现了支付宝支付后,以为MUI微信支付,也没什么大问题,结果这个问题困扰了我几天,后面再同事的提醒下终于弄出来了, 问题出在,开始使用Dcloud 公有证书 怎么也付不了....,后面 ...