js的数据类型有哪些?[通俗易懂]

js的数据类型有哪些?[通俗易懂]数据类型一、数据类型:基本数据类型(值类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)。引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function)。特殊的对象:正则(RegExp)和日期(Date)。特殊类型:underfined未定义、Null空对象、Infinate无穷、NAN非数字基本数据类型的值直接在栈内存中存储,值与值之间独立存在,修改一个变量不会影响.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

数据类型

一、数据类型:

基本数据类型(值类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)。

引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function)。

特殊的对象:正则(RegExp)和日期(Date)。

特殊类型:underfined 未定义、Null  空对象、Infinate 无穷、NAN 非数字

基本数据类型的值直接在栈内存中存储,值与值之间独立存在,修改一个变量不会影响到其他变量。

对象是保存在堆内存中的,每创建一个新对象,就会在堆内存中开辟出一个新空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当其中一个通过变量修改属性时,另一个也会受到影响。

当比较两个基本数据类型的值时,就是比较值。

而比较两个引用数据类型时,它是比较的对象的内存地址,如果两个对象是一样,但是地址不同,也会返回false.

typeof 检测变量的数据类型

Var str = “string” ;

Var type  =  typeof str; //string

//type 这个变量在这里我们称为【返回值】

【返回值】:由函数(系统内置函数、自定义函数它执行后的返回的结果)

//js中如何判定一个数组是一个真数组??

Var obj = {}; //对象 json 对象

Console.log(typleof obj);//object 类型

Var fn = function(){};//函数

Console.log(typeof(fn)); //function 类型

//null 特殊类型:代理空

Console.log(typeof(null)); //object类型

String字符串

  1. 在js中字符串需要使用引号引起来,单引号和双引号不能混用
  2. 引号不能嵌套,可以使用\进行转义。

Number类型:

  1. Number类型包括整数和浮点数(小数)
  2. JS进行浮点元素运算可能得到一个不精确的值0.1+0.2=0.300000004,不能进行精确度要求比较高的运算
  3. NaN表示Not A Number,检查时返回number
  4. JS中可以表示的数字最大值:Number.MAX_VALUE:1.79769….e+308(1.79..的308次方)如果使用Number表示的数字超过了最大值,则会返回Infinity(正无穷);最小值-Number.MIN_VALUE,(5e-324,5*10的-324次方,大于0的最小值),如果使用Number表示的数字超过了最小值返回-Infinity(负无穷),Infinity为number数据类型

Boolean布尔

  1. 布尔值只有两个true/false,主要做逻辑判断。
  2. 使用typeof检查一个布尔值时返回boolean

Undefined未定义

  1. js中输出未被赋值的被定义变量结果是Undefined;Undefined类型的值只有一个。
  2. 使用typeof检查时值时返回undifined

Null空对象:

  1. Null(空值)类型的值只有一个,null,用来表示一个为空的对象,使用typeof检查时值时返回object,因为null表示空对象NaN、infanity、undefined

Object对象

二、强制类型转换:parseInt() parseFloat() typeof()

将一个数据类型强制转换为其他的数据类型,String,Number,Boolean

转为String:

方法一:

-调用被转换数据类型的toString()方法

-该方法不会影响到原变量,它会将转换的结果返回

-null和undifined这两个值没有toString()方法,调用会报错。

var a = 123; a = a.toString();console.log(a)//”string”

方法二:

   -使用String()函数,将被转换的数据作为参数传递给函数;

   -对于Number和Boolean实际上就是调用toString()方法;

-对于null和underfined,就不会调用toString()方法,它会将null直接转换为“null”,将underfined直接转换为“underfined”。

   a = String(a); console.log(a)//”string”

转换为Number:

方法一:使用Number()函数

  -字符串–> 数字

  1. 纯数字的字符串,直接转为数字
  2. 如果字符串中含有非数字内容,则转换为NaN
  3. 如果字符串是一个空串或者全是空格的字符串,则转换为0

  -布尔 –> 数字

true转成1;false转成0

  -null–> 数字 0

  -undefined–>数字 NaN

方法二:专门用于来对付字符串

  1. paresInt();//字符串转化为整数(小数点省略)

可以将字符串中的有效整数内容取出来,转为Number类型

var a =”123px”; a = paresInt(a); console.log(a)  //123

var a =”123.456”; a = paresInt(a); console.log(a)  //123取整

  1. paresFloat();//字符串转化为浮点数,可以获得有效小数

var a =”123.456”; a = paresInt(a); console.log(a)  //123.456

  1. 如果对非String使用paresInt()或paresFloat(),会将其转换为String.然后在操作

var a =true; a = paresInt(a); console.log(a)  //NaN

转换为Boolean:

  1. 调用Boolean()函数,除了0和NaN,其余的都是true,  数字–>布尔.

var a =123; a =Boolean(a); console.log(a)  //true

var a =-123; a =Boolean(a); console.log(a)  //true

var a =0; a =Boolean(a); console.log(a)  //false

var a =Infinity; a =Boolean(a); console.log(a)  //true

var a =NaN; a =Boolean(a); console.log(a)  //false

2、字符串–>布尔,除了空串,其余的都是true

3、null和underfined,都会转为false

4、对象也会转换为true

其他进制的数字:

  1. 在js中,如果需要表示16进制的数字,则需要以0x开头

var a =”0x10”; console.log(a)  //16

var a =”0xff”; console.log(a)  //255

  1. 8进制,以0开头

var a =”070”; console.log(a)  //56

  1. 2进制,以0b开头,并非所有浏览器都支持

var a =”0b10”; console.log(a)  //2

  1. “070”这种特殊字符串,有些浏览器会当成8进制解析,有些会当成10进制解析;可以在paresInt()中传递参数来指定数字的进制

var a =”070”; a = paresInt(a,10) ;console.log(a)  //70,十进制解析

2、数据类型:堆内存

普通类型、标量类型:

string

number (int+ float)

引用类型:存储在栈内存

object ( array {})

array  

function 函数类型

特殊类型:

null (计算机的一块虚拟内存)

隐式转换:

“100”+200

“a” > “b”

….

弱数据类型语言:定义变量、参数传递 无需指定数据类型

js

php

python

var a = 123|“serewr”|[];

强数据类型语言:定义变量指定数据类型

java

c

sql

xxx char(23)

a int;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196833.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 有哪些优化mysql索引的方式请举例(sqlserver索引优化)

    目录0存储引擎介绍1SQL性能分析2常见通用的JOIN查询SQL执行加载顺序七种JOIN写法3索引介绍3.1索引是什么3.2索引优劣势3.3索引分类和建索引命令语句3.4索引结构与检索原理3.5哪些情况适合建索引3.6哪些情况不适合建索引4性能分析4.1性能分析前提知识4.2Explain使用简介4.3执行计划包含的信息字段解释(重中之重)id(表的读取顺序)select_type(数据读取操作的操作类型)table(显示执行的表名)type(访问类型排列)possible_k

    2022年4月10日
    67
  • python 文档注释快捷键,python注释快捷键是什么「建议收藏」

    python 文档注释快捷键,python注释快捷键是什么「建议收藏」python注释快捷键:1、单行注释是【#】,Mac的快捷键是【command+/】,windows的快捷键是【Ctrl+/】;2、多行注释是三个单引号【”’注释”’】。g1m少儿编程网-https://www.pxcodes.comg1m少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、python3.9版,DELLG3电脑。g1m少儿编程…

    2022年5月12日
    55
  • 大数据要学哪些内容

    大数据要学哪些内容第一阶段:静态网页基础(HTML+CSS)1.难易程度:一颗星2.技术知识点+阶段项目任务+综合能力3.主要技术包括:html常用标签、CSS常见布局、样式、定位等、静态页面的设计制作方式等第二阶段:JavaSE+JavaWeb1.难易程度:两颗星2.技术知识点+阶段项目任务+综合能力3.主要技术包括:java基础语法、java面向对象(类、对象、封装、继承、多态、抽象…

    2022年4月26日
    64
  • elasticsearch面试必考(亲身经历的问题)

    作者:手留余香|转自:Java架构沉思录|原文面试题es写入数据的工作原理是什么啊?es查询数据的工作原理是什么啊?底层的lucene介绍一下呗?倒排索引了解吗?面试官心理分析问这个,其实面试官就是要看看你了解不了解es的一些基本原理,因为用es无非就是写入数据,搜索数据。你要是不明白你发起一个写入和搜索请求的时候,es在干什么,…

    2022年4月4日
    150
  • 按位取反~运算_按位与按位或按位异或运算符

    按位取反~运算_按位与按位或按位异或运算符按位取反~运算首先我们来看按位取反的概念按位取反运算符:对数据的每个二进制位取反,即把0变成1,把1变成0.即~x=-x-1这里按照定义9的二进制为00001001其按位取反为11110110结果为-10这个过程没有任何问题,但是如果忘记了负数的二进制表达方式,就会对这个结果产生疑问,为什么11110110表示-10而不是503?理解按位取反的关键是理解11110110为什么表示-10,也就是负数的二进制表达方式。现在计算机普遍使用补码表示负数。知道补码,求源码的方式是:值取反再加1。

    2022年8月14日
    6
  • jdk16下载与安装教程win10(如何安装window7系统)

    在JDK1.8之后的下一个稳定版本就是JDK11,所以下面教大家安装JDK11

    2022年4月13日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号