学习笔记整理-JS-02-基本类型

文章目录

    • 一、数据类型简介和检测
      • 1. `JavaScript`中两大数据类型
    • 二、基本数据类型
      • 1. 数字类型
      • 2. 字符串类型
      • 3. 布尔类型
      • 4. `undefined`类型
      • 5. `null`
    • 三、数据类型的转换
      • 1. 数据类型的转换
    • 四、重点内容

一、数据类型简介和检测

1. JavaScript中两大数据类型

  • 基本数据类型

    • Number String Boolean Undefined Null
  • 复杂数据类型

    • Object Array Function RegExp Date Map Set Symbol等等
  • typeof运算法

    • 使用typeof运算法可以检测值或者变量的类型
      类型名typeof检测结果值举例
      数字类型number5
      字符串类型string‘张三’
      基本类型值布尔类型booleantrue
      undefined类型undefinedundefined
      null类型objectnull

二、基本数据类型

1. 数字类型

  • 所有数字不分大小、不分整浮、不分正负、都是数字类型
      typeof 925  // number
      typeof 3.13 // number
      typeof -6   // number
    
  • 小数中0可以省略
      .5;        // 0.5
      typeof .5  // number
    
  • 科学计数法,较大数或较小数(绝对值较小)可以写成科学计数法
      3e8;         // 300000000
      typeof 3e8;  // number
    
      3e-4;        // 0.0003
      typeof 3e-4; // number 
    
  • 不同进制的数字
    • 二进制数值以0b开头
        0b10      // 2
        0b1111    // 15
      
    • 八进制数值以0开头
        017     // 15  
      
    • 十六值数字以0x开头
        0xf     // 15
      
  • 一个特殊的数字型值NaN
    • NaN是英语"not a number"的意思,即"不是一个数",但它是一个数字型的值。
        typeof NaN;   // number
      
    • 0除以0的结果是NaN,事实上,在数学运算中,若结果不能得到数字,其结果往往都是NaN
    • NaN有一个"奇怪"的性质:不自等。

2. 字符串类型

  • 字符串要引用引号包裹,双引号或者单引号均可。

      typeof "张三";   // string
    
  • 分清数字和字符串

    • 数字11和字符串'11'在语义上是不同的,前者表达一个数量,后者表达一个文本。
        typeof 11;    // number
        typeof '11';  // string
      
  • 字符串的拼接

    • 加号可以用来拼接多个字符串
        'zhang' + 'san'
      
  • 字符串和变量的拼接

    • 要将一个变量的值"插入"到字符串中,要"斩断链接"
        var year = 2018;
        var str = "北京奥运会" + year + "年召开";
      
    • ES5中可以使用反引号拼接
        const year = 2018;
        const str = `北京奥运会${year}年召开`;
      
  • 空字符串

    • 一些时候需要使用空字符串,直接书写闭合的引号即可。
        var str = "";
      
  • 字符串的length属性

    • 字符串的length属性表示字符串的长度
        "zhangsan".length;  // 8
        "".length;          // 0
      
  • 字符串的常用方法

    方法功能
    charAt()得到指定位置字符
    substring()提取子串
    substr()提取子串
    slice()提取子串
    toUpperCase()将字符串变为大写
    toLowerCase()将字符串变为小写
    indexOf()检索字符串
    • charAt()方法

      • 可以得到指定位置的字符
          "张三".charAt(0);  // 张
        
    • substring()、substr()、slice()方法

      • substring(a, b)方法得到从a开始到b结束(不包括b处)的子串。
          'JavaScript 是最好的语言'.substring(3, 5); // 'aS'
        
      • substring(a, b)方法如果省略第二个参数,返回的子串会一直到字符串的结尾。
          'JavaScript 是最好的语言'.substring(3); // 'aScript 是最好的语言'
        
      • substring(a, b)中,a可以大于b,数字顺序将自动调整为小数在前。
          'JavaScript 是最好的语言'.substring(5, 3); // 'aS'     
        
      • substr(a, b)中,将得到从a开始的长度为b的子串
          'JavaScript 是最好的语言'.substr(5, 3); // 'cri'         
        
      • substr(a, b)中,b可以省略,表示到字符串结尾。
      • substr(a, b)中,a可以是负数,表示倒数位置。
          'JavaScript 是最好的语言'.substr(-5, 3); // '最好的'     
        
      • slice(a, b)的参数a可以是负数。
          'JavaScript 是最好的语言'.slice(-5, -1); // '最好的语'     
        
      • slice(a, b)中,参数a必须小于参数b
          'JavaScript 是最好的语言'.slice(5, 2); // ''         
        
      • 对比总结
        • substring(a, b)slice(a, b)功能基本一致,都是得到从a开始到b结束(不包括b)的子串,区别:
          • substring()可以自动交换两个参数位置,而slice()不行;
          • slice()的参数a可以是负数,而substring()不行。
        • substr(a,b)中参数b是子串长度,而不是位置编号`
    • toUpperCase()转为大写

         'zhangsan'.toUpperCase(); // 'ZHANGSAN'
      
    • toLowerCase()转为小写

         'ZHANGSAN'.toLowerCase(); // 'zhangsan'
      
    • indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置

      • 如果要检索的字符串值没有出现,则该返回-1
          "abcdef".indexOf('b');  // 1
          "abcdef".indexOf('g');  // -1   
        

3. 布尔类型

  • `布尔[Boole·George]英国19世纪数学家及逻辑学家。
  • 布尔型值只有两个:truefalse,分别表示真和假

4. undefined类型

  • 一个没有被赋值的变量的默认值是undefined,而underfined的类型也是underfined
  • 即:underfined又是值,又是一种类型,这种类型只有它自己一个值。
      typeof undefined;   // undefined
    
  • 在变量声明提升时,变量的值也是undefined

5. null

  • null表示"空",它是"空对象"。
  • 当我们需要将对象销毁、数组销毁或者删除事件监听时,通常将它们设置为null
  • typeof检测null结果是object
    • 使用typeof检测null值,结果是object
    • 类型和typeof检测结果并不总是一一对应,比如数组用typeof检测结果也是object

三、数据类型的转换

1. 数据类型的转换

  • 使用Number()函数
    number.png

  • 使用parseInt()函数的功能是将字符串转为整数
    parseInt.png

  • 使用parseFloat()函数的功能将字符串转为浮点数
    parseFloat.png

  • 使用toString()方法,几乎所有值都有toString()方法,功能就是将值转为字符串。

  • 使用Boolean()函数
    boolean.png

四、重点内容

  • JavaScript中有哪些基本类型值? 它们的typeof检测结果是什么?
  • 说出下面几个特殊值是什么:
    • NaN
    • undefined
    • null
  • 各种类型值相互转换的方法和转换规律
  • 下面表达式的结果是?
        parseInt('3.6'+'5.1'); // 3
        Boolean('false'); // true
        0/0 // NaN
        4/0 // Infinity
    
  • 请说出substring()、substr()和slice()方法的区别

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kotlin反射访问androidx.collection.LruCache类私有变量

Kotlin反射访问androidx.collection.LruCache类私有变量 androidx.collection.LruCache类中定义了一个名为map的LinkedHashMap,map存储了所有LruCache的数据,有时候需要遍历访问该LinkedHashMap,取出里面的值,但是LruCache代码实…

勇敢牛牛,爱吃青草

牛顿问题(牛吃草问题 / 消长问题) 牛顿问题(牛吃草问题/消长问题) 牛顿问题(牛吃草问题/消长问题) 牧场上有一片青草,每天都生长得一样快。这片青草供给 10 头牛吃,可以吃 22 天&…

使用阿里云服务器搭建Discuz论坛网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器建站教程,本文是搭建Discuz论坛,Discuz!是一款通用的社区论坛软件系统,它采用PHP和MySQL组合的基础架构,为您提供高效的论坛解决方案。本文介绍如何在CentOS 7操作系统的ECS实例上搭建Discuz! X3.4…

JMeter处理接口签名之BeanShell实现MD5加密

项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种:BeanShell实现MD5加密和函数助手实现MD5加密,之前已经分享过了函数助手实现MD5加密&…

Grafana Prometheus 通过JMX监控kafka 【2023最新方式】

第三方kafka exporter方案 目前网上关于使用Prometheus 监控kafka的大部分资料都是使用一个第三方的 kafka exporter,他的原理大概就是启动一个kafka客户端,获取kafka服务器的信息,然后提供一些metric接口供Prometheus使用,随意它…

Mongoose http server 例子

今天抽了点时间看了一下 mongoose的源码, github 地址,发现跟以前公司内部使用的不太一样,这里正好利用其 http server 例子来看一下。以前的 http message 结构体是这样的: /* HTTP message */ struct http_message {struct mg_…

山景DSP芯片可烧录AP8224C2音频处理器方案

AP8224C2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品,适用于传统音响系统、新兴的蓝牙或Wifi 无线音频产品、Sound Bar 和调音台等市场。该处理器在总体架构和系统组成上,充分考虑了音频领域的特点&#xff0…

代码分析Java中的BIO与NIO

开发环境 OS:Win10(需要开启telnet服务,或使用第三方远程工具) Java版本:8 BIO 概念 BIO(Block IO),即同步阻塞IO,特点为当客户端发起请求后,在服务端未处理完该请求之前&#xff…

CCLINK IE转MODBUS-TCP网关modbus tcp协议详解

你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米的JM-CCLKIE-TCP网关可以帮助你解决这个问题。 捷米JM-CCLKIE-TCP网关可以分别从CCLINK IE FIELD BASIC一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着…

MySQL高阶知识点(一)一条SQL【更新】语句是如何执行的

一条SQL【更新】语句是如何执行的 首先,可以确定的说,【查询】语句的那一套流程,【更新】语句也是同样会走一遍,与查询流程不一样的是, 更新语句涉及到【事务】,就必须保证事务的四大特性:ACID&…

k8s 滚动更新控制(一)

在传统的应用升级时,通常采用的方式是先停止服务,然后升级部署,最后将新应用启动。这个过程面临一个问题,就是在某段时间内,服务是不可用的,对于用户来说是非常不友好的。而kubernetes滚动更新,…

jacoco功能测试-代码覆盖率

1、下载 jacoco 官网地址:EclEmma - JaCoCo Java Code Coverage Library 2、拷贝 jar 包 下载好后,找到这两个文件,然后找到被测项目 3、启动 jacocoagent,监控被测项目 java -javaagent:jacocoagent.jarincludes*,outputtcp…

Filament for Android 编译搭建(基于Ubuntu20.04系统)

一、Filament 源代码下载 github下载地址: 2、安装clang 我是直接安装clang-10 Ubuntu 20.04 ,sudo apt install clang 命令默认就是clang-10 $sudo apt-get install clang-10 # 安装 AST.h 等头文件 $sudo apt-get install libclang-10-dev $sudo …

【Linux操作系统】文件描述符fd

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ Linux之路       🛰️社区 :✈️ 进步学堂       &#x1…

使用logback异步打印日志

文章目录 一、介绍二、运行环境三、演示项目1. 接口2. 日志配置文件3. 效果演示4. 异步输出验证 四、异步输出原理五、其他参数配置六、源码分析1. 同步输出2. 异步输出 七、总结 一、介绍 对于每一个开发人员来说,在业务代码中添加日志是至关重要的,尤…

docker基本使用方法

docker使用 1. Docker 介绍 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。通过利用 …

Oracle 开发篇+Java通过DRCP访问Oracle数据库

标签:DRCP、Database Resident Connection Pooling、数据库驻留连接池释义:DRCP(全称Database Resident Connection Pooling)数据库驻留连接池(Oracle自己的数据库连接池技术) ★ Oracle开启并配置DRCP sq…

神码ai伪原创文章生成器软件【php源码】

大家好,本文将围绕python二级用哪个版本的软件展开说明,二级python 值不值得考是一个很多人都想弄明白的事情,想搞清楚python二级用什么软件需要先了解以下几个事情。 火车头采集ai伪原创插件截图: 问题一:安装python…

java+springboot+mysql智能社区管理系统

项目介绍: 使用javaspringbootmysql开发的社区住户综合管理系统,系统包含超级管理员、管理员、住户角色,功能如下: 超级管理员:管理员管理;住户管理;房屋管理(楼栋、房屋&#xff…

代码详解——Transformer

文章目录 整体架构Modules.pyScaledDotProductAttention SubLayers.pyMultiHeadAttentionPositionwiseFeedForward Layers.pyEncoderLayerDecoderLayer Models.pyget_pad_maskget_subsequent_maskPositionalEncodingEncoderDecoderTransformer 整体架构 源码地址(py…