`

javascript之变量类型与变量声明及函数变量的运行机制

阅读更多
一、Javascript 中的数据类型

JavaScript 中一共有7种数据类型
1. 基本数据类型(5种):数字、文本、布尔、null、undefinded
2. 对象数据类型(2种):object, function

-

function 是一个特殊的对象,它内部所包含的代码可以再次被运行。


这里要搞清楚2个概念:变量的定义和变量的值。


变量的值是在变量运行时产生的一个实例。因为 JavaScript 是一边解释一边运行的,无需编译。除了 function 数据类型之外,其它6种在定义时就产生了值。而Function在声明时,不会去运行,只是产生了一个包含一段代码的Function对象。

Function在定义时,在内存中并未生成实例。只有被调用,运行时,才会在内存中产生对象。
如果只是定义,而未运行,被其它地方运行的函数引用时,则会出现undefined 提示。


数据类型的类型字面值:

typeof (1) === "number"                 // true
typeof ("1") === "string"               // true
typeof (null) === "object"              // true
typeof (true) === "boolean"             // true
typeof (undefined) === "undefined"      // true
typeof ({}) === "object"                // true
typeof (function(){}) === "function"    // true





二、变量的声明
关于"="操作符:

1、声明变量(直接量):
 var a = 10;

作用: 直接量定义会立即执行。

2、声明函数:
var fn = function(){
  return new Date().getTime();
}

作用: 只定义,不运行。
解释:fn的值是有的。但fn内部的值没有生成对象。因为函数没运行。
如何运行函数: fn()


此外:

可以定义并立即执行的写法:


1、诸如alert(); 等可立即执行的函数。
2、(function(){})();



三、函数的定义与运行机制

在函数内部定义的变量,运行时,首先会先解析定义的部分,再执行其它部分。
这是javascript的hoisting特性。



a =20;
c = 0;
fnt = function(a,c){
   var d = function(){
        c = a + b;
        return c;
   }   
   var  b = 20;
   var a = 10; 
   console.log(d()); // 30
}
fnt(a,c);
//d为函数,虽定义但未运行,运行时由于定义了内部变量(覆盖了重名的全局变量),故为30




a =20;
c = 0;
fnt = function(a,c){  
   var  b = 20;
    c = a + b;  
   var a = 10; 
   console.log(c); // 40
}
fnt(a,c);

//c 为直接量,定义即运行,故c=40;




—————————————

javascript 函数基础系列文章

1、JavaScript之变量的作用域
2、javascript之变量类型与变量声明及函数变量的运行机制
2.1、javascript 之 undefined
3、javaScript之function定义
4、javascript之function的prototype对象
5、javascript之function的(closure)闭包特性
6、javascript之function的this   
7、javascript之function的apply(), call()



___________


javascript 面向对象编程系列文章:

    1、javaScript之面向对象编程
    2、javascript之面向对象编程之属性继承
    3、javascript之面向对象编程之原型继承 
   

-






-
转载请注明,
原文出处:http://lixh1986.iteye.com/blog/2028899













   
分享到:
评论

相关推荐

    JavaScript变量

    ### JavaScript变量详解 ...综上所述,理解JavaScript变量的命名规则、声明方式以及作用域等概念对于编写高质量的JavaScript代码至关重要。遵循这些最佳实践可以帮助开发者写出更加清晰、高效且易于维护的代码。

    javascript运行机制1

    JavaScript 运行机制是一个复杂的过程,涉及到多个方面,如变量作用域、函数执行、上下文创建和垃圾回收等。理解这些机制是编写高效 JavaScript 代码的关键。 Knowledge points: * 全局执行上下文 * 变量赋值 * ...

    JavaScript运行机制浅探

    JavaScript的运行机制是其独特性的体现之一。通过理解预解析、编译过程以及执行过程,开发者可以更好地避免常见的陷阱,写出更加高效和可靠的代码。此外,深入理解这些机制对于调试和解决问题也是非常有帮助的。希望...

    JavaScript程序设计-变量作用域.pdf

    JavaScript是一种广泛用于网页和网络应用的编程语言,其核心特性之一就是变量作用域。变量作用域决定了变量在何处可以被访问以及何时会被销毁。本文将深入探讨JavaScript中的全局变量、局部变量、变量提升、词法作用...

    JS变量问题详解

    JavaScript中的变量是编程中一个非常基本且重要的概念,它存储各种数据类型的值,是程序中用于存储数据的容器。变量作用域的定义决定了变量可以被访问的区域,对于理解变量在不同上下文中的访问权限非常重要。 首先...

    JavaScript中函数声明优先于变量声明的实例分析

    在JavaScript编程语言中,变量和函数的声明方式以及它们的执行顺序会直接影响代码的运行结果。具体来说,JavaScript中的函数声明和变量声明都遵循所谓的提升(hoisting)规则,这意味着它们在实际执行前会被提升到...

    JavaScript中判断函数、变量是否存在

    JavaScript 是一种动态类型的语言,这意味着在运行时变量和函数的类型可以被改变。这种灵活性给开发者带来了便利,但也可能导致运行时错误,尤其是当尝试访问未定义的变量或不存在的函数时。为了防止这种情况,需要...

    深入理解JavaScript执行上下文、函数堆栈、提升的概念.pdf

    函数堆栈则描述了函数调用时的顺序和结构,而变量提升则是 JavaScript 中的一个特殊机制,它允许变量和函数声明在实际代码执行之前被移动到它们所在作用域的顶部。 执行上下文(Execution Context)可以分为三种...

    JavaScript中变量提升与函数提升经典实例分析

    JavaScript是目前前端开发中使用最为广泛的编程语言之一,其核心机制包括变量提升与函数提升。这两者是JavaScript作用域和执行上下文特性的重要体现,也是理解JavaScript运行机制的关键所在。在本文中,将结合经典...

    var与Javascript变量隐式声明

    隐式声明变量时,JavaScript的处理方式为:首先会在当前函数作用域内查找该变量是否已经声明,如果未找到,它会向上一层作用域继续查找,这个查找过程会一直持续直到全局作用域`window`对象。如果在全局作用域`...

    浅析JavaScript声明变量

    总结来说,JavaScript变量声明是一个多维度的话题,涵盖了声明方式、作用域、提升机制等关键概念。掌握这些概念对于编写清晰、健壮和可维护的JavaScript代码至关重要。在实际开发过程中,推荐使用let和const代替var...

    Terraform 中的数据类型、变量、变量文件.docx

    总结来说,Terraform 的数据类型和变量机制使得我们能够灵活地定义和管理基础设施配置。通过理解这些基本概念,我们可以更好地构建可复用和可维护的 Terraform 配置。正确使用变量和变量文件,不仅能提高代码的...

    javascript变量声明实例分析

    接下来,我们将深入探讨JavaScript变量声明的相关知识点。 首先,JavaScript中变量的声明方式主要有三种关键字:var、let和const。这里,我们将重点讨论var关键字,因为它是较早期版本JavaScript中唯一的声明方式,...

    javascript的函数 入门详解

    在JavaScript中,函数既是数据类型,也是第一级公民,这意味着它们可以被赋值给变量、作为参数传递以及作为其他函数的返回值。 1. 函数的定义方式 - **定义式**:这是最常见的函数定义方式,通过`function`关键字...

    Javascript 函数快速查询手册

    动态类型特性意味着变量可以在运行时改变其数据类型。 三、函数 函数是JavaScript中的重要组成部分,可以看作是一段可重复使用的代码块。函数使用`function`关键字定义,例如: ```javascript function greet(name)...

    深入理解JavaScript系列

    - **私有变量与函数**:通过IIFE(Immediately Invoked Function Expression,立即执行函数表达式)创建局部作用域,保护内部数据不被外部访问。 - **公共接口**:返回一个包含公共方法的对象,这些方法可以访问...

    深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解

    1、JavaScript中定义函数有2钟方法:  1-1.函数声明: 代码如下:function funcName(arg1,arg2,arg3){ //函数体} ①name属性:可读取函数名。非标准,浏览器支持:FF、Chrome、safari、Opera。 ②函数声明提升:指...

    javascript 内存模型实例详解

    JavaScript的内存模型是理解其运行机制的关键部分,主要包括原始数据类型和引用数据类型的处理,以及内存的两个主要区域:调用栈和堆。下面将详细解释这些概念。 1. **JavaScript 原始数据类型的变量声明和赋值** ...

    JavaScript程序设计课件:函数的作用域.pptx

    了解和掌握JavaScript函数的作用域以及垃圾回收机制,能够帮助开发者编写更高效、更安全的代码,避免潜在的运行时错误,并优化资源的使用。在实际编程中,合理地使用不同作用域的变量,可以提高代码的可读性和可维护...

Global site tag (gtag.js) - Google Analytics