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. AR(增强现实) 知识篇

    增强现实(Augmented Reality,简称AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动.这种技术估计由1990年 ...

  2. centos 7 安装音乐播放器(亲测可用)(转载)

    http://www.cnblogs.com/boyiliushui/p/4530625.html

  3. JS中变量名和函数名重名

    今天骚凯问了一道变量名冲突的题目,感觉很有意思,顺便也复习一下预解析的一些知识,有不对的地方忘前辈大神指正,题目是这样的: var a=100; function a(){ console.log(a ...

  4. Spring源码分析——资源访问利器Resource之接口和抽象类分析

    从今天开始,一步步走上源码分析的路.刚开始肯定要从简单着手.我们先从Java发展史上最强大的框架——Spring...旗下的资源抽象接口Resource开始吧. 我看了好多分析Spring源码的,每每 ...

  5. 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面

    此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...

  6. Nhibernate Query By Criteria 条件查询

    HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not equal > Restrictio ...

  7. 循环队列java实现

    public class SeqHeap { Object[] data; int font; int rear; int maxSize; public SeqHeap(int maxSize) { ...

  8. asp.net mvc4+mysql做一个简单分页组件(部分视图)

    在开始做mysql分页功能组件前,便设定的是要有一定可复用性.先在项目里Views文件夹下右键新建名为_PaginationComponent.cshtml,这里html及css我采用的bootstr ...

  9. 在Vi里面实现字符串的批量替换

    在Vi里面实现字符串的批量替换. a. 文件内全部替换: %s#abc#def#g(用def替换文件中所有的abc) 例如把一个文本文件里面的"linuxidc.com"全部替换成 ...

  10. Maven 配置使用小技巧

    Spark开发中遇到了一些小问题,都是大神随便一个手指头帮我解决的.保持学习,积累吧! 一. 基于Intellij IDEA编辑器 1. 快捷键 注释/去注释   Ctrl+Shift+? 2. re ...