- JSON 的用法
(1) JSON (JavaScript Object Notation, JS 对象表示法) 是一个特殊格式的字符串,这个字符串可以被人以的语言所识别并可以转换为任意语言中的对象,JSON 在开发中主要用来数据的交互。
(2) 分类:数组 & 对象。JSON 中允许的值:字符串 & 数值 & 布尔值 & null & 对象(不包括函数) & 数组。
(3) 属性名必须加双引号。例:var json = '{"name":"孙悟空", "age": 18, "gender": "男" }'; 转格式: JSON.parse ( );
- eval ( ); 可以执行一个字符串中的 js 代码。
(1) 若 eval ( ) 执行的字符串中含有 { } ,它会将 { } 当成是代码块。如果不希望将其当成代码块解析,则需要在字符串前后各加一个 ( ) 。例如 var obj = eval ( "("+str+"(" );
(2) 需要兼容 IE7 及以下,可以通过引入一个外部的 js 文件(创建一个JSON)来处理。
- JAVA SCRIPT 高级
(1) typeof 返回数据类型的字符串表达。可判断字符串 &数值 & 布尔值 & function。不能判断 null & object 和 array & object。
(2) === 判断 undefined & null 。
(3) instanceof 判断对象的具体类型
-
var a; console.long (a, typeof a); // undefined 'undefined'
(4) 如何访问对象属性:
a) .属性名:编码简单, 有局限性
b) ['属性名']:编码麻烦,通用
c) 属性名包含特殊字符(- 、空格)时,必须用第二种方式。
d) 属性名不确定时,必须用第二种方式。
var p = {
name: 'Tom',
age: 12,
setName: function (name) {
this.name = name;
},
setAge: function (age) {
this.age = age
},
}
p.setName('Bob'); //一
p['setAge'](23); //二
console.log(p.name, p['age']);
var p = { };
//p.content-type = 'text/json' // 不能用
p['content-type'] = 'text/json';
console.log(p['content-type']);
var propName = 'myAge';
var value = 18;
//p.propName = value //不能用
p[propName] = value;
(5) 如何定义函数
a) 函数声明 function fn1 () {}
b) 表达式 var fn2 = function () {}
(6) 如何调用函数
a) test(): 直接调用
b) obj.test(): 通过对象调用
c) new test(): new 调用
d) test.call/apply(obj): 临时让 test 成为 obj 的方法进行调用
var obj = {};
function test2() {
this.xxx = 'liguid';
}
//obj.test2() //不能直接调用,根本就没有
test2.call(obj) //obj.test2() //可以让一个函数称为制定任意对象的方法进行调用
console.log(obj.xxx); //liguid
(7) 回调函数
a)什么是回调函数
1. 你定义的 2. 你没有调用 3. 但最终它执行了
b)常见回调函数
1. dom 事件回调函数
2. 定时器回调函数
3. ajax 请求回调函数
4. 生命周期回调函数
(8) IIFE (Immediately-Invoked Function Expression)
a) 形式
(function (){ //匿名函数自调用
console.log('...');
}) ();
var a = 4;
console.log(a);
(function () {
var a = 1;
function test () {
console.log(++a);
}
window.$ = function () { //向外暴露一个全局函数
return {
test: test;
}
}
}) ();
$().test(); //$ 是一个函数 //$执行后返回的是一个对象
b) 作用
1. 隐藏实现 2. 不会污染外部(全局)命名空间 3. 用来编写 js 模块
变量提升 函数提升
prototype