7天入门JavaScript,第四天

作用域: (理解闭包的前提是先理解JavaScript的作用域)
  JavaScript使用函数作用域而不是块级作用域,变量在声明他们的函数体嵌套的任意函数体内都是有定义的。
  JavaScript的函数作用域是指:在函数内声明的所有变量在函数体内始终是可见的。  好的做法是将变量的声明都放到function的顶部,而不是将声明靠近放在使用变量之处。

function test(x) {
    var i = x;
    alert("j---"+j+"--k"+k);
    if(x == 0) {
        var j = 0;
        for(var k=0;k<10;k++) {
            document.writeln(k);
            j = k;
        }
        function inner() {
            return j + k;
            var j = 0;
        }
        alert("inner---"+inner());
        alert(k);
    }
    j ++;
    alert("j---"+j); // j 和 k 之所以能被访问是因为"提前"到函数的顶部。
    alert("k---"+k);
  }
  test(0);

// 函数定义语句, 函数名和函数体都会"提前"到脚本或函数的顶部。
  fun();  // 不会报错
  function fun() {

}
 
  fun(); //会报错
  //函数声明语句,只是fun这个变量"提前"了,函数体不会提前到顶部
  var fun = function() {

}

----------------------------------------------------------------------------------------------------------------------------
  undefined 有两种,一种是声明未赋值就使用 一种是没声明
  alert(typeof s); // undefined,如果不用typeof则会报错,程序中止执行
  var s;
  alert(s); //undefined
 
  null,是表示空值,可以理解为 null是程序级而undefined是系统级

var a = 1;
  alert((a++)+a); // 3

eval(),它使用了调用它的变量作用域环境。尽可能的避免使用eval();

"use strict",指令说明(脚本或函数中)后续的代码将会解析为严格代码

时间: 2024-10-17 06:47:29

7天入门JavaScript,第四天的相关文章

DAY57-前端入门-javascript(四)面向对象

面向对象 一.属性与方法 //创建一个对象 var obj = {}; | var obj = new Object(); // 属性 obj['name'] = '大毛'; | obj.name = '大毛'; // 方法 obj.func = function () { //body.... } // 删除属性与方法 delete obj.prop delete obj.func 关于之前的变量污染的问题,可以通过对象来解决 // 学习目的:对象的(临时)属性可以帮助存储临时数据,因为临时数

从零基础入门JavaScript(1)

从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了java顺风车,改名为javascript 与此同时,     微软因此在自身的浏览器里,也推出了自己的脚本语言 jscript 1997年时候,  由ECMA(欧洲计算机制造商协会)出面,推出了一套javascript的规范,Ecmascript ,规范提出js由三部分组成 JS的组成: ECMAS

无废话ExtJs 入门教程十四[文本编辑器:Editor]

无废话ExtJs 入门教程十四[文本编辑器:Editor] extjs技术交流,欢迎加群(201926085) ExtJs自带的编辑器没有图片上传的功能,大部分时候能够满足我们的需要. 但有时候这个功能还是需要的.我在这里对keeditor进行了整合. 首先要下载keeditor和上传时需要引用的LitJson.dll.由于ke的版本不同,我这里提供的下载文件只适用于当前整合代码,供参考. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML

Django之入门 CMDB系统 (四) 增删改查

Django之入门 CMDB系统 (四) 增删改查 前言 作者: 何全,github地址: https://github.com/hequan2017 QQ交流群: 620176501 通过此教程完成从零入门,能够独立编写一个简单的CMDB系统. 目前主流的方法开发方式,分为2种:mvc 和 mvvc方式.本教程为 mvc 方式,即 django负责渲染html.后面会推出 mvvc(前后端分离)的入门教程. 教程项目地址: https://github.com/hequan2017/husky

Android入门:Activity四种启动模式

Android入门:Activity四种启动模式 一.启动模式介绍 启动模式简单地说就是Activity启动时的策略,在AndroidManifest.xml中的标签的android:launchMode属性设置: 启动模式有4种,分别为standard.singleTop.singleTask.singleInstance: 讲解启动模式之前,有必要先讲解一下“任务栈”的概念; 任务栈 每个应用都有一个任务栈,是用来存放Activity的,功能类似于函数调用的栈,先后顺序代表了Activity

Docker入门教程(四)Docker Registry

Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它是Docker中的重要组件.本文通过情景演绎的方式对其进行了介绍,图文并茂,强烈推荐读者阅读. 在Docker系列教程的上一篇文章中,我们讨论了Dockerfile的重要性并提供了一系列Dockerfile的命令,使镜像的自动构建更加容易.在这篇文章中,我们将介绍Docker的一个重要组件:Dock

【Git入门之十四】Git GUI

[Git入门之十四]Git GUI - JackyStudio - 博客频道 - CSDN.NET 文章都快写完了,Git GUI才浮出水面,很多人要骂我,这么方便的东西怎么不早拿出来. 当然命令行和图形界面各有千秋,个人觉得命令行更能让人清楚的掌握整个项目的代码线.当然萝卜青菜各有所爱,Windows,Linux也是一样.喜欢什么客官您挑.本文只做简单介绍. 1.Git GUI有什么? 霸气测漏的右键菜单和可视化管理界面. 2.初始化仓库 新建一个文件夹叫JackyGUI,右键点击Git In

Photoshop入门教程(四):混合模式

学习心得:混合模式在Photoshop常容易被忽视,最大原因就是它所处的位置比较隐蔽,在图层面板左上部的角落里.使用混合模式,决定图像中上图层像素如何与图像中的下层像素进行混合,使图层的叠加更加炫酷.多种混合模式组合使用,会得到意想不到的结果.在没有灵感的时候,不妨试一试混合模式. 混合模式选项: 变暗模式(减色) 正常 溶解 变暗 正片叠底 颜色加深 线性加深 深色 变亮模式(加色) 变亮 滤色 颜色减淡 线性减淡(添加) 浅色 饱和度模式 叠加 柔光 强光 亮光 线性光 点光 实色混合 差集

快速入门git第四步

一.获得git仓库有两个来源:1.在现有的目录下,通过git add 导入文件创建新的git仓库 2.从以后的git仓库下克隆下代码 1.在工作目录下新建git仓库,使项目进行了git的管理,只需要进行下列的命令: cd 文件名(进入目录)或者直接建立一个文件夹(mkdir zhen/cd zhen/) git init git init 做了写什么? 该命令的叫做初始化,初始化目录里面的文件和结构,在该目录下胡出现一个.git的文件,该文件含有git所需要的 资源和数据 2.克隆代码: git