3.Javascript数据类型之进制数和字符串

三、字面量

字面量:英语叫做literals,有些书上叫做直接量。看见什么,它就是什么。

我们先来学习数字的字面量,和字符串的字面量。剩余的字面量类型,我们日后遇见再介绍。

3.1 数字的字面量

数字的字面量,就是这个数字自己,并不需要任何的符号来界定这个数字。

JavaScript中,数字的字面量可以有三种进制:

10进制:普通的数字就是十进制

8进制:如果以0开头、或者以0o开头、或者以0O开头的都是八进制,八进制只能用0~7来表示

16进制:如果以0x开头的都是十六进制。

八进制举例:


1  <script type="text/javascript">

2  //以0开头,所以就是八进制;显示的时候会以十进制显示

3  //3*8+6=30

4  console.log(036);  //30

5  console.log(044);  //36

6  console.log(010);  //8

7  console.log(0o36); //30

8  console.log(0O36); //30

9  </script>

运行结果:

注意,八进制只能出现0~7这8中字符,如果表示不合法,那么JS将自动的认为你输入错了,从而用十进制进行显示:


1 console.log(088);  //以0开头,按理说是八进制,但是后面的数字错了,所以以十进制显示

但是以0o开头、0O开头的数字,如果后面写错了,控制台报错!


1 console.log(0o88);

再看一下16进制:


1 console.log(0xff);

2 console.log(0x2b);

3 console.log(0x11);

运行结果:

如果后面有错误的写法,那么控制台报错:


1 console.log(0x2m);

总结一下,下面的输出结果都是15:


1 console.log(15);

2 console.log(017);

3 console.log(0o17);

4 console.log(0O17);

5 console.log(0xf);

下面的输出结果都是负15:


6 console.log(-15);

7 console.log(-017);

8 console.log(-0o17);

9 console.log(-0O17);

1 console.log(-0xf);

小数的字面量也很简单,就是数学上的点。计算机世界中,小数称为“浮点数”。

允许使用e来表示乘以10的几次幂


1 console.log(-3.1415926); //-3.1415926

2 console.log(.315); //.315 如果整数位数是0,可以不写

3 console.log(5e5);     //500000

4 console.log(5.6e5); //560000

5 console.log(1e-4);     //0.0001

6 console.log(.1e-3); //0.0001

只有十进制有小数的字面量,八进制、十六进制没有小数的字面量。

最后学习两个特殊的字面量:

Infinity 无穷大

试图输出一个非常大的数字:


1 console.log(3e45645645645645);

控制台显示表示无穷大

至于多大的数字能生成无穷大,不同浏览器不一样,不要管。

可以是负的无穷大:


1 console.log(-3e45645645645645);

我们可以直接在控制台输出无穷大,注意大小写:


1 console.log(Infinity);

NaN  英语全名叫做not a number,不是一个数。比较哲学的是,这个“不是一个数”是一个数字字面量。


1 console.log(0/0);

总结一下,数字字面量有整数字面量(十进制、16进制、八进制),浮点数字面量(要记住e),Infinity,NaN

3.2 字符串

字符串是一个术语,就是人类说的语句、词。

字符串的字面量,必须用双引号、单引号包裹起来。字符串被限定在同种引号之间;也即,必须是成对单引号或成对双引号。


1 console.log("今天天气很好");


1 // 必须是同种引号,这是错误的:

2 console.log(哈哈");

如果一个数字,用引号引起来,那么就是字符串了:


1 console.log(“3”);

转义字符,

\n 回车换行

\t tab缩进


1 alert("你好\n\n我很爱你\n啊");

引号的转译:

正常情况下,引号内部可以有不同种的引号,比如双引号里面可以有单引号:


1 console.log("老师说你像考拉一样漂亮");


1 console.log(‘老师说你像"考拉"一样漂亮‘);

可以用\” 来表达引号:


1 console.log("老师说你像\"考拉\"一样漂亮");

反斜杠自己也用反斜杠来转义:


1 console.log("c:\\a\\b.jpg");

原文地址:https://www.cnblogs.com/qujianguo/p/12425728.html

时间: 2024-11-13 10:15:06

3.Javascript数据类型之进制数和字符串的相关文章

javascript将10进制数转换为2进制

javascript中将10进制数转换为2进制有两种方式 一种是直接用toString(2)这个方法,一种是自己写一个方法换算,以下是代码: var num = 11; var str = num.toString(2); /*将十进制数转变为二进制数*/ function dec2bin(num){ var result = ""; if(num == 0){ return "0"; } while(num > 0){ result = num % 2 +

用Python内置函数轻松实现各种进制数之间的转换

0.说明 9个月没有写过Python了,这9个月都在华为的ICT知识海洋里遨游,前段时间刚刚通过了HCIE的认证,想着还是喜欢Python和Linux多些,所以又回来了,后面会有越来越多的Python干货分享给大家,比如后面会打算写一个完整的Linux主机监控项目的教程给初入门的朋友,相信这会是非常不错的体验. 那段时间,曾经有些时候,我需要对各种进制进行转换,因为虽然那会不写Python了,但是还是用Python自带的解释器用来做简单的数学计算,很方便. 在网上找,看有没有方法可以实现各种进制

栈的实现,进制数转换以及符号匹配

//seqstack.h #ifndef _SEQSTACK_H #define _SEQSTACK_H #define STACK_SIZE 20 typedef int ElemType; //若要使用功能5 请将int 改为char #include<iostream> #include<assert.h> using namespace std; typedef struct Stack { ElemType *base; int capacity; int top; }S

1813. M进制数问题

1813. M进制数问题 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 试用 C++的类来表示一般进制数. 给定 2 个n位m进制整数A和B,计算m进制数整数P = A / B (向下取整)与 Q = A % B的值. Input 输入包含多个测试点.第一行为一个整数T,表示测试点数. 对于每个测试点第 1 行是进制 m .第 2 行和第 3 行分别给出 m 进制整数 A 和 B. 所有 m 进制数的10进制表示均

2^k进制数

[题目描述] 设R是个2^k进制数,并满足以下条件: (1)R至少是个2位的2^k进制数: (2)作为2^k进制数,除最后一位外,R的每一位严格小于它右边相邻的那一位: (3)将R转换为2进制数q后,则q的总位数不超过w: 在这里,正整数k(1 ≤ k ≤ 9)和w(k < w ≤30000)是事先给定的. 询问满足上述条件的不同的r共有多少个. 我们再从另一角度作些解释: 设S是长度为w的01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)中的q.将S从右起划分为若干个长度

[NOIP2006] 提高组 洛谷P1066 2^k进制数

题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w. 在这里,正整数k(1≤k≤9)和w(k<W< span>≤30000)是事先给定的. 问:满足上述条件的不同的r共有多少个? 我们再从另一角度作些解释:设S是长度为w 的01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)中的q.将S从右起划分为

codevs 1157 2k进制数

1157 2k进制数 2006年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w. 在这里,正整数k(1≤k≤9)和w(k<W< span>≤30000)是事先给定的. 问:满足上述条件的不同的r共有

2k进制数(codevs 1157)

题目描述 Description 设r是个2k进制数,并满足以下条件: (1)r至少是个2位的2k进制数. (2)作为2k进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后,则q的总位数不超过w. 在这里,正整数k(1≤k≤9)和w(k<W< span>≤30000)是事先给定的. 问:满足上述条件的不同的r共有多少个? 我们再从另一角度作些解释:设S是长度为w 的01字符串(即字符串S由w个“0”或“1”组成),S对应于上述条件(3)中的q.将S

字和字节和位和16进制数的关系

字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit)  一个字的字长为16 一个字节的字长是8 两个16进制数! 一个字节八个比特,就是八个二进制位   0000 0000     0x00-0xFF (十进制0-255) 四个二进制数最大表示为15,就是一个16进制数,所以八位可以表示成两个16进制的数!