js基础认知,变量,数据类型,数据类型转换

125 阅读5分钟

javascript概念

是什么

js是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。

做什么

  1. 网页特效
  2. 表单验证
  3. 网页交互
  4. 服务端编程

组成

1:js基础 ECMAScirpt

2:web api: 分为dom(页面标签) bom(操作浏览器)

js引入方法

内联例如 :

<a onclick='console.lod(123)'></a>

内部

外部 单独js文件

js注释

单行 ctrl+/

多行shift+alt+a

结束符

分号;代表一行结束,可加可不加,工作中,工具统一格式化

输入输出

输出

document.write

alert()

console.log

输入

prompt()弹出一个对话框,获取用户输入,用变量接住输出

变量

变量是什么?

变量是程序在内存中申请的一份存储数据的空间

变量声明的三种方式

var,let ,const(常量)

JavaScript 是弱类型语言,可以不需要声明变量而直接使用。这样虽然简单但不易发现变量名方面的错误,所以不建议这样做。通常的做法是在使用 JavaScript 变量前先声明变量。目前,JavaScript 变量声明方式有 3 种,分别是使用 var、let 和 const 关键字声明。

其中,使用 var 声明变量,是 ECMAScript6 版本以前一直使用的方式,由于这种方式声明的变量在某些情况下会导致一些问题,因而在 ECMAScript6 版本中增加了使用 let 和 const 两种方式声明变量。

JavaScript 采用弱数据类型的形式,因而 JavaScript 变量是一种自由变量。它在程序的运行过程中可以接受任何类型的数据,不管使用哪种方式声明,在声明时都无需指定数据类型,这一点和强类型的 Java 等语言的变量声明需要指定变量的数据类型存在很大的不同。

变量使用注意点

声明多个变量可用逗号分隔例如 let a=1,b=2.变量申明可以不赋值,其默认值为undefined,不建议不声明直接使用,变量数据类型根据所附的值决定

var特点:可声明全局和局部变量,可声明重复的变量,后面的覆盖前面的。没有块级作用域。有变量提升。

**let特点:**有块级作用域,不可以重复声明

**const常量特点:**声明必须赋初始值,不可以修改变量的值,但是如果是修改复杂数据类型里面的值不算做修改此常量。变量也不可以多次声明,也有块级作用域

三种区别:

  1. 变量初始化要求不同:var 和 let 声明变量时可以不需要初始化,没有初始化的变量的值为“undefined”,在代码的运行过程中变量的值可以被修改。const 声明变量时必须初始化,并且在代码的整个运行过程中不能修改初始化值,否则运行时会报错

  2. 变量提升的支持不同:var 声明支持变量提升,而 const 和 let 声明不支持变量提升。

  3. 对块级作用域的支持不同:var 声明的变量,不支持块级作用域,let 和 const 声明的变量支持块级作用域。凡是使用一对花括号{}括起来的代码都称为一个代码块。所谓块级作用域,指的是有效范围为某个代码块,离开了这个代码块,变量将失效

  4. 重复声明:在同一个作用域中,var 可以重复声明同一个变量,let 和 const 不能重复声明同一个变量。

  5. let 和 const 存在暂时性死区:当块中存在 let/const 声明语句时,let/const 声明的变量就绑定到这个当前块作用域,不会受外部变量的影响,也不会影响外部变量。这个特点导致了在块作用域中,块变量在块开始到块变量声明之间出现了一个称为“暂时性死区”的区域。在“暂时性死区”中使用块变量,将会导致 ReferenceError

暂时性死区知识链接[(www.php.cn/js-tutorial…]

补充说明:块级作用域,在块级作用域内的变量,无法被外部所访问。防止变量污染

变量提升js在执行代码的时候使用var申明的变量将被提升在最前面

变量命名规范:

不能用数字开头,变量名由字母,数字,下划线,$符号组成,不要使用关键字,区分大小写。

规范:使用驼峰命名法:例如myName每个单词首字母大写。

语义化。使变量名能看懂

数据类型:基本,引用

基本数据类型

基础数据类型分为:数字,字符,布尔,null,undefined。

引用数据类型:function函数,array数组,obeject对象。

数字型

小数,整数,负数都是数字型

字符串型

带引号都是字符串

字符串拼接使用+

**模板字符串:简化拼接字符串,可以创建多行文本,标记``**变量替换${变量}

document.write可以把一个标签形式的字符串插入body

写字符串标签的时候如果换行只能使用反引号,没有换行使用哪种都可以

例如document.write(<h1>123</h1>)

布尔:true,false

null表示空

undefind表示未定义

null和undefined

null == 0
//false
null == ""
//false
null == false
//false
undefined == 0
//false
undefined == ""
//false
undefined == false
//false
undefined == null  //注意!注意!注意!
//true
undefined === null  //注意!注意!注意!
//false

数据类型检测

typeof()

数据类型转换

字符串转换为数字

隐式转换

除+号以外,-*/在运算的时候都会把字符型的数字转为数字型

工作中比较常用的写法:

let a=“1”,a=a-0,或者 a=+a

显示转换

Number()

parseInt()转换为整数

parsnfloat()转换为带小数的

补充:1:一个小数保留几位小数直接调用toFixed()方法 (四舍五入)

2:非数字使用这些方法转换为NaN

数字转换为字符串

隐式转换

let a=1

a=1+’‘

通过字符串拼接隐式转换

显示转换

let a=1

string(a)

a.tostring()