js中变量和函数的基本使用

简介:

JS代码就是JavaScript编写的脚本文件的代码。用单独文件保存,扩展名为.JS。它有自己的元素,如:常量、变量、运算符、函数、事件、对象等。

代码段

由script标签包含的代码,称为代码段,如下:

<script>
...
</script>
复制代码

变量

var a = 120; 其中a称为变量名,120称为变量值

变量存储的数据类型有哪些?

  • 基本数据类型
  • 引用数据类型

基本数据类型:
number: 100,3,56等 无数个
string:"zhangsan",'lisi'等 无数个
boolean:false,true两个
underfined:underfined 一个
null
引用数据类型:
object

基本数据类型的存储与赋值

画图分析上面的结果:

总结:上面的代码可以这样理解,将a对应的内存中的值取出来复制了一份,给了b。此时b就是10。此时a和b这两个内存空间是独立的,对一个内存空间值的改变不会影响另一个内容空间。
引用数据类型的存储与赋值

画图分析上面结果:

总结:上面的代码可以这样理解,首先把[1,2]存储在堆区中,在栈区中取一个地址命名为a,把a中在栈区存储的[1,2]的地址,取出来,copy了一份,赋给了b,b也指向了[1,2]。所以对a的操作势必要影响b的结果。对b的操作,也会影响a的结果。

函数

创建函数有以下两种创建方式,函数声明和函数表达式。

<script>
//函数声明
function f(){
    var a =10;
    console.log(a)
}
//函数表达式
var g =function f(){
    var a =10;
    console.log(a)
}
</script>
复制代码

1.编写一个两个数相加的一个函数

<script>
    function add(x,y){
        return x+y;
    }
    console.log(add(1,2))
</script>
复制代码

2.编写一个两个数相减的一个函数

<script>
    function sub(x,y){
        return x-y;
    }
    console.log(sub(4,2))
</script>
复制代码

3.编写一个两个数相加的一个函数

<script>
    function ave(x,y){
        return (x+y)/2;
    }
    console.log(ave(6,2))
</script>
复制代码

4.输出两个数的和、差和平均值。

<script>
    function f(x,y){
        var arr =[];
        var a =x+y;
        arr[0] =a;
        var b =x-y;
        arr[1] =b;
        var c =(x+y)/2;
        arr[2] =c;
        return arr;
    }
    console.log(arr);
</script>
复制代码

js中的预编译

什么是编译?

  • 在计算机语言中,计算机语言主要分两类:编译性语言,另一类是解释性语言。首先,计算语言从最开始到现在,主要有如下几个阶段,第一个是机器语言,计算机可以直接识别的语言。第二个阶段汇编语言。此时,汇编语言也会转化成机器语言,再后来发展,出现第三个阶段高级语言。
  • JS是解释性语言,在浏览器中它肯定封装了一个解释性,但是在JS直接被解释时,它需要做件事:第一件事就是扫描整个代码段,如果有语法错误,就不会进入到第二阶段,而是报错了。第二件提升,提升变量和提升函数。
分析如下:

undefined出现在什么地方?
例1:当声明了一个变量,但是没有给它赋值,它输出了undefined。
例2:声明了一个函数,但是此函数没有返回值,它输出了undefined。

变量提升
  • 加var的变量会提升且将其提升到代码段的最前面,不加var的变量不会提升。
注:函数内部加var变量的提升是指提升到了函数体内部的最前面。
函数提升
  • 只会提升函数声明,将其提升到代码段的最前面,不会提升函数表达式.

变量提升

(1)普通变量提升

上面的代码,在执行时,首先是把a提升,然后再对a进行赋值,所以输出一个是undefined,一个是110。分析如下:

(2)循环内部中的var变量也会提升

(3)函数中的var变量也会提升

注:函数中的var变量提升是指提升到函数体中的最前面。
(4)遗漏声明

函数提升

(1)函数声明提升

(2)函数表达式不提升

函数表达式说到底其实它是一个变量g,所以变量g要提升到最前面,提升完之后再调用函数,如下:

全局变量和局部变量

  • 简单来说,全局变量和局部变量是以函数为界限的,函数外部的叫全局变量,函数内部的叫局部变量。全局变量在整个代码段中都能调用,而局部变量只能在函数中调用。
  • 例一
注:加var的变量可做全局变量也可做局部变量,不加var的变量只能做全局变量。
  • 例二
注:首先var变量提升,然后打印变量,且遵循就近原则。
  • 例三
注:局部变量只能在函数内部使用。

js中常见的错误

  • 代码错误(浏览器报错)
  • 逻辑错误(浏览器不报错)
    (1)语法错误
    (2)引用错误
    (3)类型错误
    (4)范围错误
    注意
    1.上述四类错误共同点,就是浏览器会提示信息,我们根据提示信息就能找到解决错误的办法。
    2.语法错误会让整个代码都不运行,它在编译期间就发现了语法错误。
    3.引用错误,类型错误,警署错误它只会在错误的地方出现错误,在错误后面的代码是不执行的,但是在错误前面的代码是执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值