JavaScript学习笔记

来源:互联网 发布:传至大数据4期百度云 编辑:程序博客网 时间:2024/06/06 06:33
HTML中引用js
①在HTML中写< script>< /script>②引用外部文件< script src="js文件路径">< /script> 
变量声明都用var,且变量所占内存大小随每次的赋值大小而动态变化
变量的提升(变量使用前未定义的处理)
%运算结果的符号位为第一个变量的符号
||和&&的特性,所以有赋值操作不要写在表达式中,而应写在前面或后面
NaN不能识别的number类型变量值,Infinity代表无穷(1/0)
instanceof的用法,typeof的用法,基础类型值拷贝,object类型的创建方式,默认的方法(valueOf、toString等)

object类型的访问方式(①”obj.xxx”②”obj[“xxx”]”)

关于声明的提升(结合变量提升)

//一个栗子,自己去试结果console.log(typeof value)var value;              //undefinedfunction value(){       //function}//第一个栗子扩展版,自己去试结果console.log(typeof value)var value = "我很弱,不能提升?";                //undefinedfunction value(){       //function}//第二个栗子var value = function(){    alert("惊不惊喜?")};              function value(){       alert("意不意外?")  }value();//第二个栗子的实际流程版var value ;             function value(){       alert("意不意外?")  }//var value;位置随意,只要不放在函数里面,所产生的效果都相同value = function(){    alert("惊不惊喜?")};value();

下面介绍声明的提升:

function value(){}其实就是声明一个函数,而var value是声明一个变量,所以都要提升,这时var则提升到function前面。那么为什么第一个栗子扩展版中的结果是string呢(提示:声明和赋值是两步操作,声明会提升)

//说多都是废话,吃透下面代码也就能完全理解了console.log(typeof value);var value = "我被赋值了";        //undefinedconsole.log(typeof value)function value(){           //function}

作用域:

局部变量:var关键字定义在函数内部的变量

关于传参

这里以此为蓝本去分析,实参和形参数不一致的处理

function add(){    for (var i=0;i<arguments.length;i++) {        console.log(typeof arguments[i])        }}add([1,2,3],{name:123},123,true,"hello");

关于this指代内容的心得

谁调用的函数就指代谁,比如"对象.函数名(参数列表);"那么这个函数中的this 就指代这个对象(对象包含所有引用类型)。如果执行函数时没有调用者,则调用者就是内建对象global(也就是window,PS:js中内建对象有window和Math可以直接使用其中的属性方法)关于this作参数,

//几个杂乱的栗子

function outFn(){    num = 1111;    function innerFn(obj){        console.log(obj);    }    innerFn(this);//想要输出outFn的内容}outFn()             //es6会输出undefined,es5应该会输出代表window的this/*函数是对象,而对象具有属性或方法,所以有下面解决方法*/outFn.fn = outFn;   //给函数对象添加方法outFn.fn();         //输出结果是outFn这个对象,因为是outFn调用的函数delete outFn.fn;    //清除附加的方法,fn的取名不要与其他重名/*上面的栗子仔细研究,this指代的内容就应该比较好理解了吧*//**下面提供一个测试栗子*/(function(obj){    this.num = 1000;    console.log(this)})(this);//相当于执行function fn(obj){  this.num = 1000;  console.log(this)}fn(this)//怎么才能输出fn呢?系统提供了call/apply方法动态绑定以及bind方法静态绑定
原创粉丝点击