- function x( a ){
- if (a<10){
- return a;
- }
- return a * 2;
- }
- console.log( x(9) );
- console.log( x(20) );
- console.log( x(30) );
- //函数名赋值
- let a = 0;
- function fn(){
- a ++;
- console.log(a);
- }
- document.onclick = fn;
- //函数名自执行
- let a = 10
- function fn(){
- return function(){
- a ++;
- console.log(a);
- }
- }
- document.onclick = fn();
- //全局作用域中,this指向window
- console.log(this);//window
-
-
- function x(){
- console.log(this);
- }
- //变量函数自执行,this指向window
- x();//window
-
-
- //函数表达式自执行,this指向window
- (function(){
- console.log(this);//window
- })();
- //事件函数的this指向事件对应的节点对象
- /*document.onclick = function(){
- console.log(this);
- };*/
- let obj = {
- name : "Fly",
- age : 18,
- say : function(){
- console.log(this);
- }
- };
- //对象的方法自执行时,this指向该对象
- obj.say();
- //但是如果用来充当事件函数,this还是按照事件函数的规则,指向节点对象
- document.onclick = obj.say;
- //call , apply 都是自执行
- let obj = {
- n : "Fly",
- a : 16
- };
- function fn( a,b ){
- console.log(a+b,this);
- }
- // fn();//window
-
- //传入的第一个实参,往后依次传入的形参,代表this指向
- fn.call( obj,2,3 );
- //传入一个数组里,依次对应形参
- fn.apply( obj,[3,4] );
- //bind不会主动执行,被动执行
- let obj = {a:1,b:2};
- let fn = function(){
- console.log(this);
- };
- //bind不会主动执行,被动执行
- document.onclick = fn.bind(obj);
- /*let a = 10;
- let b = 10;
- console.log(a === b); //true
- let c = {n:1};
- let d = {n:1};
- console.log(c === d);*///false
- let e = {h:10};
- let f = e; //引用关系
- // console.log(e === f);//true
- f.g = 20;
- console.log(e);
- console.log( typeof 10 ); //"number"
- console.log( typeof "10" ); //"string"
- console.log( typeof true ); //"boolean"
- console.log( typeof undefined ); //"undefined"
- console.log( typeof {} ); //"object"
- console.log( typeof [] ); //"object"
- console.log( typeof window ); //"object"
-
- //比较特殊的
- console.log( typeof null ); //"object"
- console.log( typeof function(){} ); //"function"
- console.log(typeof typeof 10);//"string"
- // alert( 10 );
- // alert( "哈哈哈" );
- // alert( true );
- // alert( undefined )
- // alert( null )
-
- // alert( [1,2,3] ); // 数组的内容1,2,3
- // alert( {a:10} ); // 对象变成字符串[object Object]
-
- //函数弹窗,写的什么样就是什么样
- function fn(){
- let a = 10;
- let b = 20;
- return a+b;
- }
- alert( fn );