var obj = { name : '张三', age : 20 };
var fn = function(){ console.log("hello world!"); } fn();
var arr = [1,2,3]
//1.基本 //typeof 返回数据类型的字符串表达 var a ; console.log(a , type a , type a==='undifined' , a === undifined); console.log(undefined===='undefined'); a = 4 ; console.log(typeof a==='number'); a = '张三'; console.log(typeof a==='string'); a = null; console.log(typeof a===null); //false null的typeof 是 'object'
var obj = { name : "张三", age : 20 }; var fn1 = function(){ console.log("hello world !"); }; var arr = [1,2,3]; console.log(obj instanceof Object , obj instanceof Array); // true , false console.log(arr instanceof Array , arr instanceof Object); // true , true console.log(fn instanceof Function , fn instanceof Object); //true true 因为函数也是一种特殊的对象 console.log(typeof fn ==='function'); //true
什么是数据
var obj = { name : 'tome'} // obj在栈空间中(变量名和对象存在堆空间中的地址) , {}中的内容在堆空间中
什么是内存
什么是变量
内存,数据,变量三者直接的关系
function fn(){ var obj = {}; } fun(); //b是自动释放,b所指向的对象在后面的某个时刻被垃圾回收器回收
var obj = { name : 'jack' }; function setName(){ this.name = 'tom'; } //obj.setName() setName.call(obj); //可以让一个函数成为知道任意对象的方法被调用 console.log(obj.name);
(function(){ //匿名函数 var a =3 ; console.log(a+3); })();
var a = 1; console.log(a) (function(){ //匿名函数 function test(){ consol.log(++a); } function test2(){ console.log('test2'); } window.$ = function(){ //向外暴露一个全局函数 return { test : test } } })(); //1.$是一个函数 2.$执行后返回的是一个的对象 $().test;
function fun(){ } fun.prototype.test = function(){ console.log('----test----'); } console.log(fun.prototype); //默认指向一个Object空对象 console.log(fun.prototype === fun); //true //给原型对象添加属性(一般是方法) ===>实例的对象可以访问 var f = new fun(); f.test();
//定义构造函数 function fun(){ //内部语句:this.prototype = {} } //创建实例对象 var f = new fun() // 内部语句: __proto__ = fun.prototype //给原型添加方法 fun.prototype.test = function(){ console.log("--test--"); }; //通过实例调用方法 f.test();
console.log(Object); console.log(Object.prototype); console.log(Object.prototype.__proto__); //null function Fn(){ this.test1 = function(){ console.log('test1'); } } var fn = new Fn(); Fn.prototype.test2 = function(){ console.log('--test2--'); } fn.test1(); fn.test2(); console.log(fn.test3) //undifined fn.test3(); //报错 fn.test3不是一个方法
function Fn (){ } console.log(Fn.prototype instanceof Object); //true cosole.log(Object.proptotype instanceof Object); // false cosole.log(Fuction.proptype instanceof Object);//true