手机版

JS基础短文(新手必读)

时间:2021-09-08 来源:互联网 编辑:宝哥软件园 浏览:

在学习的过程中,总会有以前被吞噬的地方。在这里,我们将记录今天学到的一些知识点,供以后查看。

JavaScript中的数据类型

简单(基本)数据类型:数字、字符串、布尔值、未定义、空

复杂(引用)数据类型:对象、数组、日期、函数等

下面描述了简单(基本)数据类型和复杂(引用)数据类型之间的区别:

简单数据类型:将值直接存储在堆栈中,如下图所示

复杂数据类型:在堆栈中存储引用,如下图所示

在了解了以上两种数据类型的存储方法后,我们可以通过做以下练习来区分它们之间的区别:

var a=10var b=a;//Q:改变A的值后,B的值是否改变a=20console . log(b);//10 var S1=new Object();var s2=s1//Q:S1的属性改变后,s2的同一个属性是否改变s1.name=' mhconsole . log(S2 . name);//mhfunction f2(arr) { arr=[9,8,7,6,5];//生成新对象arr[0]=-100;} var数组=[1,2,4,7,5];f2(数组);console.log(数组[0]);//1 javasript中的变量提升、函数声明和变量作用域

首先看下面的面试问题:

var num=10fun();fun()函数{ console . log(num);var num=20}我会在学会之前直接回答10。现在学习了JavaScript中的预编译概念,知道了var关键字的提升概念和函数的声明概念。我知道上面的代码等于下面的代码:

var num//全局范围遇到var和function。升级函数fun(){ var num;//本地用户遇到var升级console . log(num);num=20} num=10fun();看看下面这个问题:

//问题:为什么会出现以下错误?//未捕获类型错误:fnName不是函数控制台. log(fnName(1,2));var fnName=函数(a,b) {返回a b;}上述代码相当于以下代码:

var fnNameconsole.log(fnName(1,2));fnName=函数(a,b) {返回a,b;}可以看到,因为函数在等号的右边,所以只会提升var,报错“unsughttypeerror 3360fn name不是函数”。

为了理解变量的范围,您可以看到以下代码:

f1();console . log(c);console . log(b);console . log(a);函数f1(){ var a=b=c=20;console . log(c);console . log(b);console . log(a);}对于var a=b=c=20这种连续赋值只在局部范围内重新声明A,而B和C的范围是全局范围。因此,只有全局范围内的a报告错误为“未定义不明确的引用错误:a”。

以上JS基础短文(菜鸟必看)是边肖分享的全部内容,希望能给大家一个参考和支持。

版权声明:JS基础短文(新手必读)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。