资讯专栏INFORMATION COLUMN

JavaScript核心属性-数据类型

james / 1095人阅读

摘要:声明变量并初始化值为原始类型,一般称之为字面量方式定义变量,或直接量方式定义变量。浮点类型表示包含小数部分。浮点类型所占的空间是整数类型的两倍。

原始类型

原始类型,又称原始值,是直接代表JavaScript语言实现的最底层数据。
原始类型分为 boolean类型、number类型、string类型三种。
声明变量并初始化值为原始类型,一般称之为字面量方式定义变量,或直接量方式定义变量。

number类型

number类型包括整数类型和浮点类型

整数类型:包括负整数、0、正整数。

浮点类型:表示包含小数部分。浮点类型所占的空间是整数类型的两倍。

var num1 = 0.1;
console.log(num1);
/* 浮点类型 - ".1"表示"0.1"的含义 -> 不推荐 */
var num2 = .1;
console.log(num2);

var num3 = 10.1;
console.log(num3);
/* 浮点类型 - ".0"表示为整数 */
var num4 = 10.0;
console.log(num4);
/* 浮点类型 - "."表示为整数 */
var num5 = 10.;
console.log(num5);
浮点类型的计算误差

由于小数部分只能表示有限的个数,在四舍五入的过程中有可能出现误差。

/*
    number类型中的小数,在计算时可能出现误差
    * 并不是所有的小数计算都出现误差
    * 小数的计算时,注意结果是否出现误差
      * 通过数字值的换算,将其转换成整数进行计算,再将结果换算为小数
 */
var x = 0.3;
var y = 0.2;
console.log(x - y);// 0.1
NaN

NaN(Not a Number),非数值,是一个特殊的数值。

NaN与任和值都不相等,包括NaN本身

任何涉及NaN的操作都会返回NaN

var num = Number("化物语");//将string类型转换成number类型
console.log(num)//NaN   这个值不是一个数字
console.log(typeof num)//number   这是一个number类型
string类型
/*
* string类型的值用单引号或双引号包裹
* 值的内容可以是所有字符
* string类型 - 文本本身需要单引号或双引号时
    1.如果需要的是双引号,字符串只能使用单引号
    2.如果需要的是单引号,字符串只能使用双赢好*/

var str1 = "化物语"
console.log(str1)

var str2 = "化物语"
console.log(str2)
boolean类型

布尔类型是指真假、开关、是否,它的值只有ture和false

ture和false都是小写

var boo = true
console.log(boo);//true
typeof运算符

由于JavaScritp是弱类型的,所以需要一种手段检测给定变量的数据类型。typeof就是用来检测数据类型

typeof运算符判断原始类型的数据类型

var boo = true;
var str = "化物语";

console.log(typeof num);// number
console.log(typeof boo);// boolean
console.log(typeof str);// string

var result = typeof num;
console.log(result);// number
console.log(typeof result);// string
包装类型

在JavaScript中是区分大小写的,写法上,原始类型全部小写,包装类型全部大写。
一般不建议用包装类型定义对应的数据类型,单包装类型提供了操作相应值的方法

/*
    通过包装类型创建一个数字值类型的变量
    * var 变量名称 = new Number(数字值)
      * new Number() -> 创建了一个Number类型的对象
    * 以下两种方式创建的数字值,在使用上没有任何区别
 */
/* 构造函数方式 */
var num1 = new Number(100);
console.log(num1);/* [Number: 100] */
/* 字面量/直接量方式 */
var num2 = 100;
console.log(num2);/* 100 */

console.log(typeof num2);// number
console.log(typeof num1);// object(对象)

var str1 = new String("化物语");
console.log(str1);

var str2 = "化物语";
console.log(str2);

var boo1 = new Boolean(true);
console.log(boo1);

var boo2 = true;
console.log(boo2);
instanceof运算符

相对于typeof运算符只能测试原始类型数据的类型,instanceof运算符可以判断包装类型(引用类型)

var str = new String("卧龙学苑");
var num = new Number(100);
var boo = new Boolean(true);
// instanceof运算符用于判断引用类型(包装类型)
console.log(str instanceof String);// true
/*
    typeof运算符与instanceof运算符的区别
    * typeof运算符
      1.用于判断原始类型
      2.语法结构不同 -> typeof 变量名称
      3.得到结果不同 -> 原始类型的名称
    * instanceof运算符
      1.用于判断引用类型(包装类型)
      2.语法结构不同 -> 变量名称 instanceof 引用类型名称
      3.得到结果不同 -> 布尔类型的值(true或false)
 */
undefined

undefined表示空的数据类型,他只有一个值,就是undefined

* 如果一个变量的值等于undefined -> 变量是存在的,但没有值
    * undefined类型中只存在一个值(undefined)
    得到undefined值的情况如下:
    1.定义变量时,只声明,而不初始化值 -> undefined
    2.定义变量时,初始化值为 undefined -> undefined
    注意 - 得到undefined值的情况不止以上两种
 */
var v;
console.log(v);

var c = undefined;
console.log(c);

console.log(typeof v);// undefined - 类型名称
null

表示一个不在质量任何内存空间地址的变量,多用于释放内存
null类型只存在一个值null

var v = null;
console.log(v);// null
类型转换 隐式类型装换

由于JavaScript是弱类型/松散类型的,在任何情况下都可以强制转换。

var num =100;
var str ="化物语";
var boo =true;

//转换为number类型
var result1 = +str;
console.log(typeof result1);//number
var result2 = +true;
console.log(typeof result2);//number

//转换为string类型
var result3 = "" + num
console.log(typeof result3)//string
var result4 ="" + boo
console.log(typeof result4)//string

//转换为boolean类型
var result5 = !!num
console.log(typeof result5)//boolean
var result6 = !!str
console.log(typeof result6)//boolean
显示类型转换
// 定义number类型、string类型以及boolean类型的变量
var num = 100;
var str = "化物语";
var str1 = "100";
var str2 = "100.7"
var boo = false;

/*
    1.转换为string类型
      * String()函数 -> String(值)
      * toString()方法 -> 变量名.toString()
        * 对象的方法 -> 将变量当作是一个对象来使用
  */
var result1 = String(num);
console.log(typeof result1);// string
var result2 = num.toString();
console.log(typeof result2);// string

/*
    2.转换为number类型
      * Number()函数 -> Number(值)
      * parseInt()函数 -> parseInt(值)
        * 转换为number类型,转换为一个整数
      * parseFloat()函数 -> parseFloat(值)
        * 转换为number类型,转换为一个浮点数
  */
var result3 = Number(boo);
console.log(typeof result3);// number

var result4 = parseInt(str1);
console.log(typeof result4);// 100
var result5 = parseFloat(str1);// 100
console.log(result5);// 100

var result6 = parseInt(str2);// 100.1
console.log(result6);// 如果当前值为小数的话,parseInt()后取整数部分 - 100
var result7 = parseFloat(str2);// 100.1
console.log(result7);// 100.1

/*
    3.转换为boolean类型
      * Boolean()函数 -> Boolean(值)
  */
var result8 = Boolean(str);
console.log(result8);// true

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96713.html

相关文章

  • 理解javascript核心知识点

    摘要:作用域链的作用就是做标示符解析。事件循环还有个明显的特点单线程。早期都是用作开发,单线程可以比较好当规避同步问题,降低了开发门槛。单线程需要解决的是效率问题,里的解决思想是异步非阻塞。 0、前言 本人在大学时非常痴迷java,认为java就是世界上最好的语言,偶尔在项目中会用到一些javascript,但基本没放在眼里。较全面的接触javascript是在实习的时候,通过这次的了解发现...

    laznrbfe 评论0 收藏0
  • task0002(一)- JavaScript数据类型及语言基础

    摘要:不过让流行起来的原因应该是是目前所有主流浏览器上唯一支持的脚本语言。经过测试,数字字符串布尔日期可以直接赋值,修改不会产生影响。再考虑对象类型为或者的情况。对于结果声明其类型。判断对象的类型是还是,结果类型更改。 转载自我的个人博客 欢迎大家批评指正 1. 第一个页面交互 这里最需要学习的老师的代码中,每一部分功能都由函数控制,没有创建一个全部变量。且最后有一个函数来控制执行代码...

    elarity 评论0 收藏0
  • Javascript语句 - Javascript语法基础 - Javascript核心

    摘要:多数运算符都是由标点符号表示,比如和。通常会根据需要对操作数进行类型转换左值是一个古老的属于,它是指表达式只能出现在赋值运算符的左侧。也称为严格相等运算符,它用来检测两个操作数是否严格相等。运算符的检测规则是和运算符的求反。 源代码: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/...

    lavnFan 评论0 收藏0
  • JavaScript 闯关记

    摘要:对象数组初始化表达式,闯关记之上文档对象模型是针对和文档的一个。闯关记之数组数组是值的有序集合。数组是动态的,根闯关记之语法的语法大量借鉴了及其他类语言如和的语法。 《JavaScript 闯关记》之 DOM(下) Element 类型 除了 Document 类型之外,Element 类型就要算是 Web 编程中最常用的类型了。Element 类型用于表现 XML 或 HTML 元素...

    mj 评论0 收藏0
  • 数据类型 - Javascript语法基础 - Javascript核心

    摘要:在编程语言中,能够表示并操作的值的类型称做数据类型。中的原始类型包括数字,字符串和布尔值。日期与时间语言核心包括构造函数,用来创建表示日期和时间的对象。其规则为如果是布尔值,和分别被转换为和如果是数字值,返回本身。 源代码: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/Javas...

    sevi_stuo 评论0 收藏0

发表评论

0条评论

james

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<