初识JavaScript

初识js

什么是js

JavaScript简称js,是一门编程语言,可以在浏览器上运行。写法比较自由~~~可以用来写网页,做游戏,做app…

js的三种写法

1)内部写法:把js写在html文件中 script标签中
2)外部写法:把JS写在JS文件中,然后在html文件中通过script标签引入 写项目时通常会把JS写在一个单独的文件中
3)内行写法:把JS代码写在开始标签中,当成开始标签的属性

js的基本语法

1)js是区分大小写 var a = 1; var A = 2; 是不一样的
2)忽略空白符(如:空格 换行 tab)
3)语句分号可加可不加
4)注释 // 单行注释 /* 多行注释 */

js变量

在 JavaScript 中创建变量被称为“声明”变量。可以通过 var 关键词来声明 JavaScript 变量 var name 声明之后,变量是没有值的(underfind),如果需要赋值,需要使用等号

运算符

  1. =叫赋值运算符:
  2. 1+1 + 加号 左结合性
  3. = 右结合性 从右向左
  4. i++ 先返回值,再加一
  5. ++i 先自加1再返回值
    i++和++i单独使用效果一样
运算符的先后顺序

在这里插入图片描述

变量的分类

1)全局变量
2)局部变量
只要把变量写在函数里面就是局部变量,只要写在函数外面就是全局变量。

区别

1)全局变量不止在函数内部能访问到
2)局部变量只能在函数内部访问到

js的数据类型

1.基本数据的类型:
number 数字
string 字符串 ”“ ‘’ JS中不分字符和字符串 都叫字符串
boolean true false 布尔类型
undefiend 没有值
null 没有值
2. 引用数据类型:
object 对象
array 数组
function 函数 在JS中函数也是一种数据类型

数据类型的特点

1.number对应的值有无数个
2.在JS中number数据类型不分整数和小数 都是number
3.可以通过typeof查看一个变量值的数据类型
4.infinity无穷大 number.max(mini)_value 数字型中的最大(小)值
5.number可以通过不同进制显示 2进制 8进制10进制 16进制
6.NaN ,Not a Number 不是一个数字
7.JS中不要对小数运算 要运算先转成整数
8.数组的下标是从0开始的var arr [1]; console.log(arr[0])

js中的数据类型转换

1.隐式转换
2.强制转换

转换为数字型

1.ParseInt(变量),可以把字符型转换为数字型,得到的是整数
2.ParseFloat(变量),可以把字符型转换为数字型,得到的是小数
3.number
4.利用算数运算-,*,/隐式转换

布尔类型转换

在JS中,下面的值转成false,其它值都转成true:
0 , -0
“”
undefiend
null

预编译

JS代码在执行时分两个阶段:
1)预编译
2)代码执行

定义变量和声明变量

定义变量:var a = 110; 定义 = 声明+赋值
声明变量:var a = 110; 说的声明仅仅是说var a 后面是赋值

提升

1.把加var的变量进行提升 变量声明会提升 变量的赋值是不会提升
提升到了代码段最前面
2. 把使用function声明的函数进行提升 提升的是整个函数声明
js中提升过一次之后就不会再提升第二次了

EC执行上下文( Execute Context): EC的作用:给代码提供数据

代码分两类:
全局代码 函数外面的代码叫全局代码
函数代码 一个函数就是一个局部代码

全局执行上下文:
全局代码在执行时时,就会产生全局的EC。 EC(G)
局部执行上下文: 函数代码在执行时,就会产生局部的EC。调用一个函数就产生一个EC,调用几个函数,就产生几个EC。
window是一个全局对象 只要是一个全局变量或全局函数都会挂载到window上(GO)

EC栈:
栈:杯子
每产生一个EC就会放到杯子中
栈:先放进去的后出来
代码执行在EC中时先给形参赋值,再看提升

举个例子:

<script>
        console.log(n);//有var 所以会提升 var n 但是没有值 所以是 undfind
        var n = 100; //var 声明的变量  已赋值 
        console.log(n); // n=100
       console.log(window.n); //window 是一个全局对象
      m = 200;//全局变量
      console.log(m)//GO中找
      console.log(a)//a is not defind 
 </script>

let

  • let声明的变量没有提升

  • let配合{}可以形成作用域

  • 使用let声明的变量不会挂载到GO上

  • 使用let不能重复声明

    代码的执行:一行一行执行


仅代表个人观点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值