1)常用的命名规范:
    aXXXX:aBtn 说明获取的是一组元素;--类数组
    oXXX:oBtn 说明获取的是一个元素-》对象
        对象有两个重要的特点:属性 和 方法;
        属性和方法的区别:属性没括号 方法有括号
    bxxx:bOk 代表布尔值 true、false
    reg/re :代表正则;
    str:字符串
    ary/arr/array:数组
2)带var和不带var的区别:
带var:1)在全局作用域下,变量相当于window的全局属性 2)带var会进行预解释
不带var:1)相当于window的全局属性 2)重要:不带var不会进行预解释;
3)预解释无节操:
    1)只对等号左边带var的声明,但不定义;
    2)自执行函数不会进行预解释,只有执行到他的时候,声明+定义+调用同步完成
    3)已经声明过的变量,不会进行重复声明
    4)return后面的语句不会进行预解释,return下面的语句,虽然不执行,但会进行预解释;
    5)条件判断语句中:无论条件是否成立,都会进行预解释
        警示:不要在条件判断语句中,写函数的定义阶段
4)在预解释的时候,函数的优先级>变量
5)运算符的优先级:算术运算符》比较运算符》逻辑运算符》赋值运算符
    所以,以后遇到赋值的时候,一定要加括号;
6)点击任何一个按钮的时候,弹出他对应的索引:
          1)自定义属性解决方式->本质:把正确的i值保存到对象的私有属性上;
          2)闭包-》本质:把正确的i值保存到不同的私有作用域中;
7)关于this的用法:
    1.当元素身上的事件被触发的时候,会执行一个函数,函数中的this,指向当前这个元素
    2.函数被调用的时候,看前面是否有点,点前面是谁,this就是谁;如果没有点,默认是被window调用的;
    3.自执行函数中的this都是window;
8)内存和内存释放:
内存主要包含:堆内存和栈内存;
栈内存:全局作用域和私有作用域;
       作用:提供了一个供JS代码执行的环境;里面放的是基本数据类型的数据;
堆内存:作用:就是用来存放引用数据类型的数据:
       对象数据类型:存放的是属性名和属性值;
       函数数据类型:把函数体中的所有JS代码,作为字符串存在堆内存空间中
内存释放:
    堆内存的释放:让变量指向空指针;
    var obj={key:value}; obj=null;
    栈内存的释放:
        全局作用域:形成:当浏览器加载完页面的时候,会形成一个供JS代码执行的全局作用域;
                  释放:关闭页面、关闭浏览器;
        私有作用域:形成:函数被调用的时候;
        一般情况下,当函数执行完成的时候,都会默认进行释放,但是两种特殊情况除外:
            1)不释放:当函数体中的任何东西,被外面的变量或者其他东西占用的时候,该函数不释放;
            2)不立即释放:当函数执行完成的时候,返回一个需要执行的函数;需要等待所有的函数都执行完成的时候,该函数才能释放;例如fn( )( )
一般有三种情况:
①函数执行返回了一个引用数据类型的值,并且在函数的外面被一个其他的东西接收了,这种情况下一般形成的作用于都不会被销毁;
②在一个私有作用域中给DOM元素的时间绑定方法,一般私有作用域不销毁;
③不立即销毁
 
9)上级作用域:跟函数在哪里调用无关,只跟该函数对应的堆内存在哪里开辟有关;
10)
++i:先++,再运算
i++:先运算,再++;再++的时候,只是自身的增加,跟运算无关;
..................................................................
例题: 
var n=[12,34,56,8];
function fn(a){

    a[0]=100;
    a=[];
    a[a.length]=300;
    console.log(a);
}
fn(n);

HK&&CC JS学习:第一周——NO.2this的更多相关文章

  1. 【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第一周测验【中英】

    [吴恩达课后测验]Course 1 - 神经网络和深度学习 - 第一周测验[中英] 第一周测验 - 深度学习简介 和“AI是新电力”相类似的说法是什么? [  ]AI为我们的家庭和办公室的个人设备供电 ...

  2. 201671010140. 2016-2017-2 《Java程序设计》java学习第一周

       java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方 ...

  3. Java学习第一周

    第一周学习了JDK的安装和环境的配置,初步了解了Java与C的不同之处,学习了Java的变量.基本数据类型.以及面向对象的基础.并且自行完成了一些简单Java程序的编写. (1)学习了为什么使用抽象类 ...

  4. 20165213 java学习第一周

    20165213 -2018-2<Java程序设计>第一周学习总结 教材学习内容总结 java的四个特点:面向对象.平台无关性.动态性.简单. java编写程序步骤:再有jdk的情况下,先 ...

  5. Java学习第一周博客

    20145307<Java程序设计>第一周学习总结 教材学习内容总结 首先学习安装Java有两种方法,一种是用Eclipse直接编辑输出,另一种方法是用记事本之后用win+G开启cmd运行 ...

  6. H5学习第一周

    已经接触H5一个周了,经过学习,总算对H5有了一些了解和认知,下面就总结一下我对H5的认知和感悟. 首先接触的是H5的常用标签[meta],它有其以下常用属性 1.charset属性.单独使用,设置文 ...

  7. Three.Js学习第一天

    因为工作需求,最近接触到了ThreeJs库,国内学习文档的确少,所以在这里写下bolgs记录学习史,并且给后面学习的人尽一份微博之力. 3D场景依靠WebGL技术.目前支持比较好的浏览器,谷歌.火狐. ...

  8. linux学习第一周

    1. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 2. 安装Centos7.6操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图. 3. 配置环境变量,实现执行hi ...

  9. Java学习第一周心得体会

    一周的学习很快就过去了,说说我个人的总结吧! 下面几个是我觉得需要牢牢记住的 1.Java的执行机制:先编译.再解释 2.变量以及基本数据类型 3.强类型编程语言:要求变量的类型与值的类型要一致 4. ...

随机推荐

  1. MATLAB的一些基础知识

    1.已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)))产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗? ...

  2. [No000077]打造自己的Eclipse

    下载官网的Eclipse IDE for Java EE Developers 在根目录下的eclipse.ini文件中添加"-Dfile.encoding=UTF-8", 作用: ...

  3. 玩 perf

    有一个进程happy在执行,另一个进程spy发送了一个信号把happy给杀死了 我怎么能通过perf抓到spy进程? happy进程一直执行 在spy进程中调用kill(happy's pid) ,发 ...

  4. 监控jvm的一个坑

    监控jvm的一个坑 1,遇到的问题 我按照以往文档,在catalina.sh里追加jvm的监控api,如下 紧接着我启动 tomcat. 未报任何错误. 发现 lsof –i:12000, 12000 ...

  5. maven中央仓库访问速度太慢的解决办法

    方法一:修改settings.xml eclipse中集成的maven的settings.xml文件,找了半年也没找到,我们放弃eclipse中的maven,下一个最新的maven,并在eclipse ...

  6. xcode升级导致git无法使用

    skytraveler:lucas$ git Agreeing to the Xcode/iOS license requires admin privileges, please re-run as ...

  7. 【腾讯GAD暑期训练营游戏程序班】游戏中的特效系统作业说明文档

  8. ConvertHelper 通用类

    public class ConvertHelper<T> where T : new() { private static Dictionary<Type, List<IPr ...

  9. sublimetext3安装px转rem的神器

    在用sublimetext3写css的时候,我们有时会进行单位换算,为了更快的获得我们想要的单位结果,我们可以安装cssrem这个神器(插件). 首先,我们要先下载好插件,下载地址如下: 地址:htt ...

  10. 【IIS】iis6.1下添加两个ftp站点,

    1,添加本地账户或密码||组  :[控制面板-->管理工具-->计算机管理器-->系统工具-->本地用户和组] 2,IIS站点目录先(添加FTP站点)[注意:多个站点多个端口] ...