资讯专栏INFORMATION COLUMN

JavaScript(一)数据类型

zhiwei / 945人阅读

摘要:运算符用来测试一个对象在其原型链中是否存在一个构造函数的属性,但它不能检测和作用和非常相似。但检测与不一样,还可以处理基本数据类型的检测。

数据类型

javascript中数据类型分为简单数据类型和复杂数据类型,今天只学简单数据类型 ( 5个 )
number、string、boolean、undefined、null
数值、字符串、布尔、声明未赋值、空类型

Number

JavaScript不区分整数和浮点类型,统一使用number来表示

进制

在javascript中表示一个数字,除了有我们常用的十进制11, 22,33等,还可以使用八进制、十   六进制表示等。
//我们最常用的进制,进行算术运算的时候,八进制和十六进制最终都要转换成二进制,计算机只识别二进制
//逢10进1
var num = 9;
var num = 29;

// 0开头的数字, 逢8进1
var num1 = 010;
var num2 = 0121;

// 八进制 0-7  逢八进一 , 10
var ba = 0321; 
// 12 = 2*8^0 + 1*8^1 = 10
// 321 = 1*8^0 + 2*8^1 + 3*8^2 = 1+16+ 192 = 209
console.log(ba);

//  十六进制
// 0x开头的数字,逢16进1,  数字范围1-9A-F
var num = 0xA;
var num = 0x12;

浮点数

浮点数就是小数,,比如0.1
const num = 0.1;

/**** 科学计数法 */
//当一次数字很大的时候,可以用科学计数法来表示
var num = 3e+3;  //3乘以10的3次方
var num = 2e-2;//2乘以10的-2次方

/***浮点数丢失精度问题*/
//在进行浮点数运算的时候,可能会出现精度丢失的问题
0.1 + 0.2 = 0.30000000000000004;
0.2 + 0.2 = 0.4;
//尽量少用浮点数进行运算,不要让浮点数进行比较。

解决办法 : 根据小数点后面的位数量 乘以对应的整数;
0.2 + 0.3  ==> (0.2*10+0.3*10) / 10 = 0.5

/**** 数值范围 **/
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity    1/0
无穷小:-Infinity

字符串类型--String
      字符串类型,使用双引号 " 或者 " 或者 `` 包裹起来的字符

        ```
        //双引号和单引号必须成对出现
        const str = "hello world";
        const str = "hello world";
        
        const num1 = "13";
        const num2 = "13";
        
        /******字符串长度***/
        每一个字符串都有一个length属性,可以获取到字符串中字符串的个数
        const str = "akdjflksjdflk";
        console.log(str.length);
        
        /****字符串拼接***/
        
       1、+号具有字符串拼接功能,它能将两个字符串拼接成一个字符串。
       2、+号同时具有算术加法的功能,它能将两个数字进行相加
       3、如果+号两边有一个是字符串,那么就是拼串的功能,如果都是数字,那么就是算数的功能。

       // 第一种情况 : 字符串 + 字符串
       const a = "hello";
       const b = "world";
       console.log(a + b);//字符串拼接功能

       // 第二种情况 : 数值 + 数值
       const a = 100;
       const b = 100;
       console.log(a + b);//加法

       // 第三种情况 : 字符串 + 数值
       const a = "abc";
       const b = 100;
       console.log(a + b);//字符串拼接功能
布尔类型--boolean
      布尔类型:true 和 false
  
     //布尔类型只有两个值
     true:表示真
     false:表示假
undefined和null
 他们都属于获取非正常值的类型
 
 undefined表示一个没有赋值的变量
 null表示一个空的值, ( 例如 : 获取一个元素,id写错了,获取不到,返回一个null)

数据类型的判断

1. typeof

 typeof返回一个表示数据类型的字符串,返回结果包括:number、boolean、string、symbol、object、undefined、function等7种数据类型,但不能判断null、array等

2. instanceof

instanceof 是用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,
否则返回false。instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性,但它不能检测null 和 undefined

3. constructor

constructor作用和instanceof非常相似。但constructor检测 Object与instanceof不一样,还可以处理基本数据类型的检测。 
不过函数的 constructor 是不稳定的,这个主要体现在把类的原型进行重写,在重写的过程中很有可能出现把之前的constructor给覆盖了,这样检测出来的结果就是不准确的。

4. Object.prototype.toString.call()

Object.prototype.toString.call() 是最准确最常用的方式。
Object.prototype.toString.call("") ;   // [object String]
Object.prototype.toString.call(1) ;    // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]

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

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

相关文章

  • JavaScript学习总结()基础部分

    摘要:前缀规范每个局部变量都需要有一个类型前缀,按照类型可以分为表示字符串。例如,表示以上未涉及到的其他对象,例如,表示全局变量,例如,是一种区分大小写的语言。布尔值与字符串相加将布尔值强制转换为字符串。 基本概念 javascript是一门解释型的语言,浏览器充当解释器。js执行时,在同一个作用域内是先解释再执行。解释的时候会编译function和var这两个关键词定义的变量,编译完成后从...

    AlanKeene 评论0 收藏0
  • JS程序

    摘要:设计模式是以面向对象编程为基础的,的面向对象编程和传统的的面向对象编程有些差别,这让我一开始接触的时候感到十分痛苦,但是这只能靠自己慢慢积累慢慢思考。想继续了解设计模式必须要先搞懂面向对象编程,否则只会让你自己更痛苦。 JavaScript 中的构造函数 学习总结。知识只有分享才有存在的意义。 是时候替换你的 for 循环大法了~ 《小分享》JavaScript中数组的那些迭代方法~ ...

    melody_lql 评论0 收藏0
  • 《JSON必知必会》学习笔记(

    摘要:基于对象字面量,但是独立于任何编程语言,真正重要的是表示法本身,所以在学习之前不必先学习。键必须是字符串,值可以是合法的数据类型字符串数字对象数组布尔值或。布尔类型中的布尔值仅可使用小写形式或,其他任何写法都会报错。 什么是JSON JSON全称是Javascript Object Notation(对象表示法),是一种在不同平台间传递数据的文本格式(数据交换格式)。常见的数据交换格式...

    rickchen 评论0 收藏0
  • 《JSON必知必会》学习笔记(

    摘要:基于对象字面量,但是独立于任何编程语言,真正重要的是表示法本身,所以在学习之前不必先学习。键必须是字符串,值可以是合法的数据类型字符串数字对象数组布尔值或。布尔类型中的布尔值仅可使用小写形式或,其他任何写法都会报错。 什么是JSON JSON全称是Javascript Object Notation(对象表示法),是一种在不同平台间传递数据的文本格式(数据交换格式)。常见的数据交换格式...

    imccl 评论0 收藏0
  • JavaScript基本语法(

    摘要:目录语句变量小结基本语法一是核心知识点的基本语法的第一部分,主要介绍了语句表达式变量和数据类型不包括函数类型的基本知识点,函数类型将在下一章函数二中详细探讨语句程序的执行是由一条条语句组成的每一条语句是为完成特定任务而执行的操作语句当中可以 目录 1. 语句 2. 变量 3. 小结 JavaScript基本语法(一)是JavaScript核心知识点(ECMAScript)的基本语法的...

    shiina 评论0 收藏0
  • JavaScript的语言特性以及重要版本

    摘要:通常一个完成的不仅仅包含了还包括了以及相关版本该版本在中使用。基于原型函数先行的语言使用基于原型的的继承机制,函数是的第一等公民其他相关的语言特性编译型语言把做好的源程序全部编译成二进制代码的可运行程序。 转载请注明出处,创作不易,更多文章请戳 https://github.com/ZhengMaste... 前言:JavaScript诞生于1995年,它是一门脚本语言,起初的目...

    Yangder 评论0 收藏0

发表评论

0条评论

zhiwei

|高级讲师

TA的文章

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