JS基础随笔(菜鸟必看篇)

网络编程 2025-04-05 01:45www.168986.cn编程入门

JS基础随笔(新手必读):狼蚁网站SEO优化与长沙网络推广的

在学习的道路上,总会遇到曾经匆匆略过的知识点。今天,狼蚁网站SEO优化团队带你深入理解JavaScript的基础知识。

一、JavaScript数据类型

我们知道JavaScript的数据类型分为简单数据类型和复杂数据类型。简单数据类型包括Number、String、Boolean、Undefined和Null,而复杂数据类型如Object、Array、Date和function等。

让我们理解这两种数据类型的区别。简单数据类型在栈内直接存储值,而复杂数据类型在栈内存储的是引用。为了更好地理解这一点,让我们看一个例子:

```javascript

var a = 10; // 简单数据类型

var b = a; // b直接存储a的值

a = 20; // 改变a的值,b的值不变

console.log(b); // 输出10

```

对于复杂数据类型:

```javascript

var s1 = new Object(); // 复杂数据类型

var s2 = s1; // s2存储s1的引用

s1.name = "mh"; // 改变s1的属性,s2相同的属性也随之改变

console.log(s2.name); // 输出"mh"

```

二、变量提升、函数声明与变量作用域

在JavaScript中,有一些重要的概念需要理解,如变量提升、函数声明和变量作用域。让我们通过一些实例来深入理解这些概念。

看下面的代码:

```javascript

var num = 10;

fun(); // 函数调用应在函数声明之前,但这里的执行顺序并非如此

function fun() { console.log(num); var num = 20; } // 输出什么?

```

在没有深入学习之前,可能会认为输出的是10。在JavaScript中,由于变量提升和函数声明的存在,实际的执行顺序与代码中的顺序并不一致。同样地,再看下面这段代码:

```javascript

console.log(fnName(1, 2)); // 报错:Uncaught TypeError: fnName is not a function

var fnName = function(a, b) { return a + b; }; // 为什么会出现这个错误?

```

出现这个错误的原因是,由于JavaScript的函数声明会被提升,但在这个例子中,`fnName`被赋值一个函数之前就被尝试调用了,因此会报“fnName is not a function”的错误。实际上,这段代码等同于下面的代码:

```javascript

var fnName; // 变量声明被提升

console.log(fnName(1, 2)); // 这里尝试调用fnName,但它是undefined,所以会报错

fnName = function(a, b) { return a + b; }; // 函数赋值在后,但声明在前会被提升

```

狼蚁网站SEO优化与长沙网络推广带给我们的不仅仅是技术知识,更是对技术深入的过程。希望你能对JavaScript有更深入的理解。变量的奥秘:从一段代码作用域规则

在编程的世界里,变量和它的作用域是每一个开发者必须掌握的基础知识。今天,我们将通过一段简单的JavaScript代码来深入理解变量的作用域。

让我们看看下面的代码:

```javascript

f1();

console.log(c); // 输出什么呢?让我们拭目以待。

console.log(b); // 同样,这里会输出什么?

console.log(a); // 这里的结果又是怎样的呢?

function f1() {

var a = b = c = 20; // 在这里,我们对a进行了声明和赋值,而对于b和c则是赋值。

console.log(c); // 在函数内部,这里的c值是多少?

console.log(b); // 同样,b的值又是多少呢?

console.log(a); // 这里输出的a值是函数内部的还是全局的?

}

```

在这段代码中,我们定义了一个函数f1,并在其中对三个变量a、b、c进行了赋值操作。关键在于,这些变量是如何被赋值的,以及它们的作用域是什么。在JavaScript中,对于连续赋值如`var a=b=c=20;`,只对最左侧的变量a进行了声明,而b和c则只在当前作用域内进行了赋值。换句话说,变量a在函数f1中被声明并赋值,而b和c则在全局作用域内被赋值。当我们试图在函数外部访问这些变量时,只有全局的b和c可以被访问,而a则会引发错误,因为"a is not defined"。这是因为我们在函数外部无法访问到函数内部只被赋值未被声明的变量。

以上就是关于JavaScript中变量和作用域的一个基础知识点。希望这篇文章能帮助你更好地理解变量的作用域规则。如果你对这篇文章有任何疑问或者想要了解更多关于编程的知识,欢迎关注狼蚁SEO,我们会定期分享更多实用的技术文章。也希望大家能多多支持我们的分享。

我们使用的是Cambrian的渲染方式结束这篇文章。让我们期待更多精彩的内容吧!

上一篇:bootstrap中添加额外的图标实例代码 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by