最近在看《OOJavaScript》,之前没好好看过javascrpt基础,但这本书里对JS基础也有详细介绍,看起来很顺,做下笔记权当积累吧。

 

用到的工具:

www.mozilla.com/firefox/
www.getfirebug.com/
按F12进入firebug
firebug功能:
1.输入"doc",按Tab智能补全"document"
2.再输入"."自动出现可用属性
3.按“上下方向键”自动出现之前输入的命令

 
点击“右下角”的“红箭头”,可以输入多行
调整警告等级方法:
地址栏输入 bout:onifg
在出现的"Filter"中输入 strict
双击 javascript.options.strict 设为 true
js原生类型:
Number,String,Boolean,
Undefined:未定义类型
Null:定义为null,是空的object
object:
获取value类型:typeof
0开头的数字表示八进制,0x开头的为十六进制
比如0377就是255
1e1=1e+1=10就是小数点后移1位
类似的,2e+3就是2 000,2e-3= 0.002
number最大为:
 
再大的数都是Infinity
表示“最大的数”,比如“6/0”就等于“Infinity”
Infinity-Infinity=Infinity+Infinity=NaN(Not a number);
Infinity-1222=Infinity

NaN
typeof NaN = number 虽然代表返回结果不是number,带它却是number类型的
String
单引号,双引号间的东西都是“String”
如果String是个数字,可以直接拿来做乘法,
也可以乘以1,转换成number
转换失败返回NaN
做加法的话,直接返回number
任何类型转换成String只要 +""

代表Boolean为“false”的东西:
""
null
undefined
0
NaN
false
Boolean和数字或者字符串做逻辑运算,则返回数字或者字符串
“==”与“===”,“!=”与“!==”后者需要类型也一样,前者会自动转换,只要值一样
Null和Undefined区别
最大区别Null,计算时会自动转换为0,Undefined值为undefined,不会自动转换
>>> 1*undefined
     NaN
>>> 1*null
     0 0
Conversion to a boolean:
>>> !!undefined
       false false
>>> !!null
       false false
Conversion to a string:
>>> "" + null
       "null"
>>> "" + undefined
       "undefned"
Array 是对象
var a= [1,2,3]
a[6] = 'new'
[1,2,3,undefined,undefined,undefined,"new"]
delete a[1]
var s = 'one'
s[0]
Fuction
function sum(a,b) {
    var c = a + b;
    return c;
}
function args() { return arguments; }
args(1,2,3,true);
[1,2,3,"true"]
JS预定义方法
parseInt()
parseFloat()
isNaN()
isFinite()
encodeURI()
decodeURI()
encodeURIComponent()
decodeURIComponent()
eval()
parseInt('123abc')=123
parseInt('abc')=NaN
parseInt('FF',10)=NaN
parseInt('FF',16)=255 //第二个参数代表进制
parseInt('0377') //八进制 255

isFinite 不是NaN也不是Infinity
eval()
执行括号里的语句,可以干任何事情
alert()不是js核心的一部分,而是由browser提供的,使用browser的线程
 
显示undefined,成员变量和全局变量同名的话,会在成员变量的域里替换前面,后面所有的变量
Functions are Data
function f() {return 1;}相当于:
var f = function(){return 1;}
They contain code
They are executeable(can be invoked)
这个很少见,变量也可以是方法:
var sum = function(a,b) {return a+b;}
var add = sum;
delete sum
匿名方法:
好处,可以把方法当做方法参数,让原方法扩展性更好
 
调用:

也可以这么调用

 

与方法体中包含另一个方法区别是:只要在参数中更改而不用到方法体中更改。