JS变量和数据类型及其转化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 字面量就是常量,不可变的量
// 变量,用var 声明变量
// JS底层保存标识符实际上采用的是Unicode编码,所以理论上所有utf-8的内容都可以用作标识符
// 也就是中文也可以当做标识符
var 年龄=18;
数据类型是字面量的类型 变量可以为任何类型
JS中有6中类型
基本数据类型:
String
var str="hello world"; //支持转义字符
Number 整数+浮点数
整数运算可以基本保证正确
浮点数运算会存在误差,不要对精确要求比较高的运算
var a=123; 数值
var b ="123"; 字符串
console.log(typeof a); //检查数据类型
console.log(typeof b);
超过最大值,则是Infinity
var c = Infinity; //正无 穷
var d =NaN; //NaN是一个特殊数值, Not a Number
var e = 123+"233";
console.log(typeof Infinity); //Number
console.log(typeof e); //NaN
console.log(Number.MAX_VALUE); 1.797336565e+308 最大正数
console.log(Number.MIN_VALUE); 5e-324 最小正数
Boolean
Null:空对象 object Remember that null means “no value”,
Undefined: 未定义变量,声明了变量但未赋值
引用数据类型:
Object
强制类型转换
1。转换成String
var a=123;
var b =true;
方法1:
var c = a.toString(); //调用Number类型变量a的toSting方法,返回它相应的字符串
var d = b.toString(); //调用boolean类型变量b的toSting方法,返回它相应的字符串
null和undefined没有toString方法
var a = null; var c = a.toString() 会报错
var a = undefined; var c = a.toString() 会报错
方法2:
调用String函数,对Number、Boolean,Undefined,NULL都适用
var c = String(a); //c是字符串类型,a是Number
调用String的底层原理:
对于Number,Boolean底层调用的是toString()
对于Undefined和NUll底层直接将其转成"undefined","null"
方法3:
res = null + ""; "null" 任何值加一个空串即可转换成字符串,底层是String()函数实现
2.转换成Number
方法1:
适用Number()函数
字符串 => 数字
1.字符数字字符串直接转换成数字 "123" => 123
2.非字符数字字符串转换成NaN "22adf" => NaN
3.空串或者空格串转换成 0 " " => 0
Boolean => 0, 1
Null => 0
Undefined => NaN;
方法2:
parseInt() 把一个字符串中有效数字转换为整数,从左至右
parseFloat() 把一个字符串中有效数字转换为浮点数
var a = "123px";
a = parseInt(a); 从头到尾取整数
对于非String类型的数据使用parseInt()操作时,会先把非String字符串,转成字符串再操作,
例如: var a = true;
a = parseInt(a); 此时a的类型是NaN,此句等价于 parseInt("true")
方法3:、
任何值做 - * / 运算都会转成Number,利用这个可以做隐式类型转换
var a = '123'; a = a -0; 此时a就变成数字了,底层原理和Number()函数实现
方法4:
对于非Number值可以使用+将其转换成Number,- 也可以,不过会改变其值
var a = '123'; a = +a; 此时a就变成数字了,底层原理和Number()函数实现
16进制 0x开头
8进制 0开头
2进制 0b开头 某些浏览器不支持
var a = "070"; a = parseInt(a);
某些浏览器会把a解析成8进制数,某些浏览器会把a解析成10进制数
可以在parseInt()加上第二个参数,指定其进制
a = parseInt(a, 8); 所有浏览器都用8进制解析
JavaScript knows
how to convert the string “4” to the
number 4 when it needs to
3、转换成Boolean
调用Boolean()
数字 => 布尔 0和NaN是false,其他数据都是true
var a =123;
a = Boolean(a)
字符串 => 布尔 空串是false,其他非空字符串是true (包含空格串)
null和undefined => false;
object => true
方式二(隐式类型转换):
- 为任意的数据类型做两次非运算,即可将其转换为布尔值
- 例子:
var a = "hello";
a = !!a; //true
</script>
</head>
<body> </body>
</html>
JS变量和数据类型及其转化的更多相关文章
- [js]变量与数据类型篇
一.变量 在JavaScript中就用一个变量名表示变量,变量名是大小写英文.数字.$和_的组合,不能用数字开头.变量名也不能是JavaScript的关键字: 1.变量的声明 (1)var:申明一个变 ...
- JS 变量的数据类型 运算符
JS中变量的类型有:数值型.字符型.布尔型.undefined.null.array.object.function 1.数值型:可以进行算术运算的(加.减.乘.除) 数值型包括:整型(整数)和浮点型 ...
- js变量和数据类型
- JavaScript变量与数据类型
变量 javascript的变量很松散,每个变量初始仅仅用于保存一个占位符而已.定义变量的操作符是 var, var 后面跟着一个标识符--当作变量的名字. 比如: var myname;//定义了一 ...
- JS 01 变量_数据类型_分支循环_数组
点击直通车↓↓↓ 数据类型及数据类型的手动转换 数组 一.概念 JavaScript(JS)是一种基于对象和事件驱动.且可以与HTML标记语言混合使用的脚本语言,其编写的程序可以直接在浏览器中解释执 ...
- 关于JS的数据类型与转化(自动与强制)
在我们谈到JS的数据类型转化时,一定会知道分为自动转化和强制转化两种方式吧,通俗来讲,自动就是在某种条件下,电脑浏览器自己会把其他类型的数据转化为相应的数据类型,而强制则是咋们程序员应该手动来做的了, ...
- JS魔法堂:函数重载 之 获取变量的数据类型
Brief 有时我们需要根据入参的数据类型来决定调用哪个函数实现,就是说所谓的函数重载(function overloading).因为JS没有内置函数重载的特性,正好给机会我们思考和实现一套这样的机 ...
- JS代码放置位置、变量与数据类型、运算符与逻辑表达运算符
内容简要: 1.JS代码放置位置的问题: 2.变量与数据类型: 3.运算符与逻辑表达式的运算符 我的位置 全局问题:为何在网页推荐位置(一般在<head></head>内部 ...
- JS中的变量和数据类型
所谓变量,就是里面存储的数据是可以改变的. 在使用变量之前,我们需要先声明变量.声明变量的关键字有var let const 在ES里面声明变量可以使用var,如下: //var 变量名 var ...
随机推荐
- STT-MRAM万能存储器芯片
传统存储器的技术局限以及不断缩小的制造尺寸所带来的巨大挑战促使科研人员开始寻找新一代存储器件,它应具有接近静态存储器的纳秒级读写速度,具有动态存储器甚至闪存级别的集成密度和类似Flash的非易失性存储 ...
- yum 程序包管理简介
rpm可以实现程序的快速,简单安装(跟编译安装比),但是rpm自己不能解决依赖,所以很多工具为了自动解决依赖应运而生,其中yum就是其中之一. yum解决依赖的办法: 必须有个文件服务器,里面放置所以 ...
- 剑指offer-面试题58_2-左旋转字符串-字符串
/* 题目: 将字符串的前sep个字符转移到字符串尾部. */ /* 思路: 更好的方法: 先翻转前sep个字符,再翻转后面的字符,最后全体翻转. */ #include<iostream> ...
- 剑指offer-面试题4-二维数组中的查找-数组
/* 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. */ /* 解题 ...
- ThinkPHP v6.0.x 反序列化漏洞利用
前言: 上次做了成信大的安询杯第二届CTF比赛,遇到一个tp6的题,给了源码,目的是让通过pop链审计出反序列化漏洞. 这里总结一下tp6的反序列化漏洞的利用. 0x01环境搭建 现在tp新版本的官网 ...
- 吴裕雄--天生自然 HADOOP大数据分布式处理:安装XShell
下载安装包
- 用记事本编辑HTML文件后保存代码全堆在一起了,记事本打开html文件格式乱了
经常会遇到这么一个现象,记事本打开编辑html代码,保存后格式就乱了,代码全部堆在一行了.遇到这种情况有时候也很无语 因为平常工作中也经常遇到这样的情况,后来通过研究,大概找到问题的所在. 我是这么一 ...
- MySQL 8 服务端帮助支持
MySQL 服务器支持 HELP 语句,该语句返回参考手册中相应信息,比如: mysql> help change master to; 返回创建主从复制相关语句的信息 参考手册的信息存储在my ...
- python list comprehensions
list comprehensions 列表解释 You now have all the knowledge necessary to begin writing list comprehensio ...
- PAT (Basic Level) Practice (中文)1046 划拳 (15 分)
划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字.如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒.两人同赢或两人同输 ...