赞
踩
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide
慕课网《深入浅出JS》:http://www.imooc.com/learn/277
JavaScript 标准参考教程(阮一峰)http://javascript.ruanyifeng.com/
廖雪锋:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000
《Javascript权威指南》
弱类型语言特性
var num = 2;
num = "this is string";//可以重复赋不同类型的值
32 + 32 //64
"32" + 32 //3232
"32" - 32 //0
1、数据类型有六种,ES6增加了Symbol第七种
数值(number):整数和小数(比如1和3.14)
字符串(string):字符组成的文本(比如”Hello World”)
布尔值(boolean):true(真)和false(假)两个特定值
undefined:表示“未定义”或不存在,即此处目前没有任何值
null:表示空缺,即此处应该有一个值,但目前为空
对象(object):各种值组成的集合(Function、Array、Date…)
其中前五种数值、字符串、布尔值、undefined、null为原始类型
2、判断数据类型三种方式
a、typeof运算符
typeof window // "object"
typeof {} // "object"
typeof [] // "object",在JavaScript内部,数组本质上只是一种特殊的对象。
typeof null // "object",js历史原因造成,本质上null是一个类似于undefined的特殊值。
b、instanceof运算符
基于原型链,适合自定义对象,也可以检测原生对象obj instance of Object
//用instanceof来区分对数组(array)和对象(object)
var o = {};
var a = [];
o instanceof Array // false
a instanceof Array // true
c、Object.prototype.toString方法
Object.prototype.toString.apply([]); //"[object Array]"
Object.prototype.toString.apply(function(){}); //"[object Function]"
Object.prototype.toString.apply(null); //"[object Null]"
//IE678中null返回"[object Object]"
Object.prototype.toString.apply(undefined); //"[object Undefined]"
使用内置对象和基本类型,遇到null和undefined失效
//封装方法
function getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
};
getType(true); //"Boolean"
getType("str"); //"String"
getType(1); //"Number"
3、运算符
a、条件运算符c ? a : b
b、逗号运算符a, b
c、delete运算符delete obj.x
var obj = {x: 1};
obj.x; //1
delete obj.x;
obj.x; //undefined
//1、Object.defineProperty();来设置对象上属性
//2、属性的configurable为true才可以被delete删除
var obj = {};
Object.defineProperty(obj, 'x', {
configurable: false,
value: 1
});
delete obj.x; //false
obj.x;
1
d、in运算符"document" in window
window.x = 1;
'x' in window; //true
e、instanceof运算符obj instanceof Func
f、typeof运算符typeof 100
g、new运算符new className
function Foo(){}
Foo.prototype.x = 1;
var obj = new Foo();
obj.x;//1
obj.hasOwnProperty('x');//false
obj.__proto__. hasOwnProperty('x');//true
h、this运算符new className
this; //window(浏览器)
var obj = {
func: function() {return this;}
};
obj.func(); //obj
i、void运算符void 0
都返回undefined
API:
API:
a、数组元素的添加和删除
b、数组方法
var a = [1, 2, 3, 4];
var b = a.splice(1,2);//a = 1,4 b = 2,3
c、ECMAScript 5中的数组新方法
var a = [1, 2, 3];
var b = a.map(function(x) {
return x*x;
}); //b = [1,4,9]
var a = [1, 2, 3];
var b = a.filter(function(x){
return x % 2 !== 0;
});//b = [1, 3]
var a = [1, 2, 3];
var b = a.reduce(function(x, y){
return x + y;
}, 0); //b = 6;
JavaScript的对象是一种无序的集合数据类型,它由若干键值对(key — value)组成。
a、创建对象
var o = {
foo : "bar"
}
var o = new Object();
var p = Object.create(o);
function Foo(){};
Foo.prototype.b = 3;
var obj = new Foo();
obj.a = 1;
'b' in obj; //true
obj.hasOwnProperty('b'); //false
obj.b = 5;
obj.hasOwnProperty('b'); //true
obj.b; //5
obj.b = undefined;
obj.b; //undefined
delete obj.b; //true,删除属性用delete
obj.b; //3,c从原型链上查找
delete obj.b; //true
obj.b; //还是3,不会删除原型链上的属性值
3、属性标签有:writable、enumerable、configurable、value、
d、geter/seter
+val转成number数据类型
e、对象方法
f、可执行对象
g、对象序列化
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。