关于js学习小结

JS学习

关于js:
js 全名javascript,但是跟java没有任何关系。
js是一门编译语言。
js的运行环境不只浏览器,还可以在其它的环境中支行。

js可以做很多工作:
1.开发网站
2.小程序和页面游戏开发
3.手机app开发
4.写后端 node.js
5.嵌入式
6.区块链
js的写法:
1)js可以写在HTML文件的script标签中(内部写法)
2)把JS代码写在开始标签中,当成开始标签的属性(行内写法)
3)写到JavaScript文档中(外部写法)

js基础语法:

1)JS是区分大小写,如: var a = 1;  var A = 2;
2)忽略空白符(空格  换行  tab)
3)语句中分号可加可不加,平时写的时候最好加上分号
4)注释  单行注释  多行注释  注释是给程序员 的
5)标识符 和 关键字  var a = 110;   var是关键字   a是变量名标识符

变量:

变量 由 变量名和变量值组成
变量名是变量值所在存储空间的别名,变量值是存储空间中存储的数据(也叫状态)

如何定义变量:

var a = 110;  // 定义了一个变量  变量的名是a  变量的值是110;
var a=1;
var b=2;
var c=a+b;
在计算机中,= 叫赋值运算符

变量分类

局部变量和全局变量

只要把变量写在函数里面就是局部变量
写在函数外面就是全局变量

全局变量和局部变量有什么特点:
    1)全局变量 可以 在函数内部访问到
    2)局部变量 只能 在函数内部访问到

####为什么需要数据类型:

为了更加合理使用内存空间,基本上所有的编程语言中都提出
数据类型的概念,研究针对不同的数据,分配不同的空间。

JS中的数据类型:
基本数据的类型:
number 数字 var a = 110; int a = 110;
string 字符串 ”“ ‘’ JS中不分字符和字符串 都叫字符串
boolean true false 布尔类型
undefiend 没有值
null 没有值

引用数据类型:
object 对象
array 数组
function 函数 在JS中函数也是一种数据类型


######代码段:
一个script标签就是一个代码段


#####初步了解执行上下文
script代码分为预编译和执行两个阶段

预编译会把全局变量提升
提升:var 定义的变量 以及 函数 f() 都会被提升到执行文档的前面。

全局变量放在栈中 对应执行上下文EC(execute context)的VO(var object)中

相对应的 局部变量(函数体)中的变量提升后 放在函数体的执行上下文中的AO(active object)中

函数题的数据存放在堆中

GO(global object 全体对象)中的对象都可以被 window调用
GO包含了全局变量和一些默认的对象

**注意:**执行上下文时,应当先提升,后执行,若为被调用函数,函数内部应先提升,后给形参进行赋值,最后执行

如下图:

在这里插入图片描述


let定义变量,不能重复定义同一个变量,否则会报错

const 定义常量,在定义时,必须进行赋值

let与const 声明后不会跟var 声明一样提升,并且,let与const的声明不会挂载到GO中

**注意:**赋值是把栈空间中的数据拿出来赋值给别人,而不是把堆空间中的数据,引用数据类型在程序进行提升时,会生成堆空间,EC(G)中的VO中引用数据类型对应的地址即为堆空间地址,当把引用数据 obj 赋值给a时,a的值为obj 对应的堆空间的地址

如下:

 var arr=[11,22];
        function f(ary){
            console.log(ary);
            arr[0]=100;
            console.log(ary);
            ary=[666];
            console.log(ary);
            ary[0]=0;
            console.log(ary);
        }
        f(arr);
        console.log(arr);

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值