数据类型转换

var str="abc";
str=Number(str);
// 如果字符串是由数字构成,强转后变为数值,否则变成NaN
NaN是非数值类型
  • parseInt转换数值时候,如果字符串是纯数字构成,或者第一个字符是数字,则转换时候从头开始转换到字母之前
  • parseInt为取整
  • 根据字符串的进制来转换为十进制的数值
  • 要求参数为字符串,自动隐式转换为字符串
str=parseInt(str);
console.log(str);
`str=parseInt(str,16)`
  • str = parseIntFloat(str);可以保留小数点,

  • Number强制转换会将布尔值转换为数值

    • true 1 false 0;
  • 布尔值转换为字符串,都是直接转换成字符串

  • 将字符数值转换为布尔值,强转布尔值

    • console.log(boolean(4);
    • 以下几种情况布尔值为false,其他都是true
      *
console.log(Boolean(0/""/false/NaN/undefined/null);
  • undefined强制转换number
console. Log(Number(undefined));//NaN
/console. Log(Number(undefined));//NaN

*object {a:1} 的转换及结果

console. log(Number({a:1));//NaN
console. log(String({a:1}));//[object object]
打印数据类型
  • typeof 获取数据的基本类型

    • console.log(typeof"a");
    • console.log(typeof"1");
  • string, number, boolean, undefined, nuLL五种基本类型都是存在内存的栈中(数据在栈中读取速度快,内存小)
  • object是存在内存的堆中(堆中读取速度慢,可存取大量数据)
    • 所有的基本数据类型都是基于对象object构建而成的
  • typeof function btn(){};

number可以理解为Number类型在栈中的映射,上面两种使用时是一样的,仅typeof一个为number类型,一个为object

运算符
+ - * / %(取模)
  • 字符串相加,首尾相连, 如果加号运算符一端是字符串,另一端不管是任何类型,都会隐式转化(默认转换)为字符串】、
  • 隐式转化 默认转换 方法是当前类型的构造函数强制转换
    *
console.log("abc"+5);//abc5
console.log("abc"+null);
var a=5;
console.log("abc"+{a:1}); //abc [object object]
简便转换字符串
console.log(5+“”);
  • 数值+布尔值会隐式转换为数值相加

  • 数值+undefined会隐式转换为数值相加 NaN;

  • 数值与除了字符串以外的数值相加都会隐式转换为数值类型相加

  • 布尔值相加也会转化成数值相加

  • 除了+ 以外,- * 、%,都会依照数值运算先将所有其他数值隐式转换为数值相加

赋值运算符和一元运算符
  • 先运算等号右侧的内容,将运算的结果赋值给等号左侧
  • b=a=2 先将a=2赋值给b之后再将2 赋值给a
  • a+=2; 步长(累加)置于前
  • a*=2 累乘
  • a-=2; 累减 还有累余累除
  • 将运算的结果赋值回原来的变量覆盖原来的值
var a=5;
a+="";//转换为字符类型
var a="10";
a-=0;//转换为数值类型

有赋值可以用,连接

  • a++;隐式转换为数值再进行+1

  • a+=1;参照算数运算符

  • a++ ; 先返回a之后再运算

  • ++a; 先运算后返回

关系元素符
  • 加减优先,大于小于(优先级仅高于逗号)
  • == === != !==
    • == != 会自动隐式转换为两端类型相同后比较
    • === !== 不转换类型,除了比较值以外还会比较类型
  • 0 false “” 都相等
  • null undefined 空或者未赋值
  • NaN 永远不等NaN,,非数值,但其数值类型为number
    • 不能用==判断是否是NaN
  • 直接写的方法就是window下面的方法
  • number.isNaN(Number(a)不会隐式转换
  • isNaN(a);先隐式转换为数值,然后再判断是否是数值
  • !a 取布尔值的反,会隐式转换
  • 空数组也不相等,因为数组是对象类型,也是引用类型,两个新的数组就是两个不同的引用对象,所以不相等
  • 空数组自动转换为空字符串,空字符串等于false
  • !之后必然是布尔值,强制转化
逻辑运算符
  • && ,|| 返回的值根据内容确定类型,不一定能返回布尔值
    *

  • && 与/且 找false熔断

下午场

进制
  •     每英寸72个点
    
  • 字 每英寸96个像素点
位运算符(都会转化成32位的数)
  • ~ 位 非运算符,加一取负,(原值等于-1,则位非为0)

  • ~~ 双位非还原取整,任何内容转换为数值,如果是非数值将变为0,其他为数值

  • & 与运算,数值化成16进制再与,任何数 与 2的结果为2或0,起码小于等于其中最小的数

  • | 或运算,任何数与 起码 大于等于最大的数

  • ^ 异或运算,两个相同时为0,不同时为1(可用来加密解密,对称加密)

  • << 左移位运算符,后面补0(左移最多30位最大,31位为负,32回归1)

  • 右移位运算符,

三目运算符
  • 条件?返回值1:返回值2;

    • 嵌套条件判断
优先级顺序

*优先级图片截取自w3school;

Js中数据类型的转换和运算符相关推荐

  1. java整数能强转转字符,Java中数据类型默认转换和强制类型转换

    默认转换: a:由低到高一次为:(byte   short    char  )---int ---long ---float --- double b:注意:byte   short    char ...

  2. js中hex各种转换总结以及crc

    js中hex各种转换总结 包含int和hex互转,hex和double.float互转,string和hex转换 var HEX = {};/*** @param {Object} buffer* A ...

  3. JS中常用正则转换和信息验证的封装(80个)

    JS中常用正则转换和信息验证的封装(80个) 邮箱 手机号码 电话号码 是否url地址 是否字符串 是否数字 是否boolean 是否函数 是否为null 是否undefined 是否对象 是否数组 ...

  4. mysql数据库的数据类型转换_MySQL 和Server 2000 数据库中数据类型的转换

    问题阐述 在某些特殊的时候,可能要将MySQL 数据库转换为SQL Server 2000 数据库,这时问题也就随之而来.例如,在MySQL 数据库中,创建的字段使用varchar 类型,该类型的数据 ...

  5. js中的~~:转换成整型数字的神器(效率)

    将js中的对象.符号转换成整型数字的神器.java中无此操作. ~是js里的按位取反操作符,~~就是执行两次按位取反,其实就是保持原值,但是注意虽然是原值,但是对布尔型变量执行这个操作,会转化成相应的 ...

  6. JS中数据类型、内置对象、包装类型对象、typeof关系

    平时在复习JS基础知识时,经常会遇到JS数据类型.基础数据类型.内置对象.包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异.今天特地整理下,方便理解. JS数据类型 基础 ...

  7. C#中数据类型及其转换知识点汇总

    概念 C#中数据类型分为两大类,分别是值类型和引用类型. 值类型变量是从类 System.ValueType 中派生出来的,当声明一个值类型变量时,系统分配内存来存储值. 整形 包括8种类型,区别在于 ...

  8. js base64 php,php中的base64decode 与js中的互相转换

    php中的base64decode 与js中的相互转换 function utf16to8(str) { var out, i, len, c; out = ""; len = s ...

  9. javascript中数据类型及转换、String()和toString()的区别

    数据类型: JavaScript中的数据类型: 在计算机中,不同的数据类型所占的储存空间是不同的.1.原始数据类型:number (数字).string(字符串).boolean(布尔值).null( ...

最新文章

  1. mysql 导出中间 数据_MYSQL数据库之间的数据导出与导入
  2. The UVALIVE 7716 二维区间第k小
  3. 加速神经网络收敛的萃取精馏权重法
  4. linux java so 历险
  5. 【渝粤题库】广东开放大学 java web开发技术 形成性考核
  6. 【转】Dynamics CRM 365零基础入门学习(三)Dynamics 通过Web API 来调用自定义的Action(使用插件)
  7. OpenStack组件——Keystone身份认证
  8. VSCode 代码风格统一设置eslint + stylelint
  9. 京东:不存在显卡售后“金融化”情况 保留追究造谣者法律责任的权利
  10. linux中指令简约版
  11. [机器学习] ——KNN K-最邻近算法
  12. mysql的data文件夹的位置以及作用
  13. 2022社交电商(众城优选)最火引流拓客新思路,微三云胡佳东
  14. nginx 映射ip端口服务
  15. OpenKM文档管理系统开源源码v6.3.9
  16. 拼多多笔试_探险家冒险和大数问题
  17. 第一章.计算机组成与体系结构
  18. markdown如何设置图片大小_cnblogs文章/MarkDown内如何调整图片的宽度?
  19. 笔记本电脑如何同时上内外网(通过usb外接网卡实现虚拟机连外网)
  20. css table 左右滑动和强制不换行

热门文章

  1. java 返回 json格式_java 如何返回json格式数据,需要技巧
  2. java开发入门基础
  3. HTTP协议请求方法简述及get和post方法区别
  4. 余承东走麦城 华为智慧屏死于高端?
  5. 6.2 Birkhoff遍历定理(Durrett)答案
  6. php合并多张gif图,两个gif合成在一起,gif图片拼合工具使多张gif合成一张
  7. 将php中文字设为黑体,css怎么设置黑体
  8. 解决变频器干扰低压电子设备的经验
  9. 28,verilog中的字符串表示
  10. 嵌入式系统stm32 跑马灯实验