前导
问题:数字1和字符串"1"的有什么不同?
- 功能不同:JS中一定要严谨,数字是数字,字符串是字符串。
- 数字可以进行加减乘除等运算,但是字符串只能进行加法运算。
- 字符串可以表示电话号码,但是数字不行。(JS中)
- 存储的方式不同
- JS中数字是用64位浮点数的形式存储。
- JS存储数字,将十进制转化为二进制。
- JS中字符串是用类似于UTF-8形式存储。
- JS存储字符串,是将所有字符编号。
- JS中数字是用64位浮点数的形式存储。
JS存储数字--------十进制转化为二进制
- 补充:用16进制表示二进制(因为2进制写起来悠长又慢)
- 16进制数:0 1 2 3 4 5 6 7 8 9 A B C D E F(10表示A)
- 8421相对应的是XXXX,从右往左写,每四位改成一个数字
- HEX表示16进制,BIN表示2进制,OCT表示8进制,DEC表示10进制
JS存储字符串是--------所有字符编号。
用0--127表示所有的符号
- 0表示结束字符
- 10表示换行
- 32表示空格
- 33=47表示标点
- 48-57表示数字符号
- 65-90表示大写字母(A--Z)
- 97-122表示小写字母(a—z)
- 127表示删除键
中文——使用编号 国标2312
- 用0000--FFFF表示汉字
- 最多收录65536个字符,单只收录了6000多个汉字,希文字母和日文假名
- 繁体字生僻字和韩文未编录
- 微软出了GBK,兼容GB2312,收入了中日韩使用的几乎所有的汉字
- 后来国标局推出了GB18030取代GBK,但不兼容GB2312,但泰文和藏文显示不了
- 推出了万国码(Unicode)不流行
- 推出了UTF-8 ,8表示最少可用8位存一个字符。
JS数据类型
七种数据类型(四基两空一对象)
- number 数字
- string 字符串
- bool 布尔
- symbol 符号
- undefined 未定义
- null 空
- object 对象(数组函数以及日期属于object,但不是数据类型)String 字符串
String 字符串
- 基础知识
- 使用案例解析
- var str = "hello";
- str 是变量,hello是字面量;
- 声明把“hello”字符串赋值给str变量
- console.log(“hello”);
- “hello”是字面量,字符串。
- 输出 “hello”。
- str = “你好” console.log(str);
- str 是变量
- 输出“你好”。
- var str = "hello";
- 使用案例解析
重要的是:变量的值和类型都能变化,但是字符串是不能变化的量
-
- 使用规范(定义)
- 需要用“”或者' '或者``引起(单引号,双引号和反引号)
- 同一引号不能嵌套
- 单双引号可以互相嵌套
var str = '我说"今天天气真好!"';
- 转义字符
- 转义字符
- “ 和” 引号
- n 换行
- t 表示制表符(相当于按了tab键)
- 表示
- 字符串的长度(使用 .length)
- '123'.length → 3
- '//'.length → 3
- 'nml'.length → 3
- 使用规范(定义)
Number 数字
- 基础知识
- 定义 :在JS中所有的数值都是Number类型
- 整数
- 浮点数(小数点会乱动)
- 特殊的数字:NaN,表示Not A NaN (非法数字)
var a = NaN 使用console.log(typeof a); 输出 number - 计算注意点
- JS中,整数运算基本可以保持精准。
- 浮点运算(特点数)可能不精准。
- 运算会将其转化为二进制进行计算。
- 案例解析
- 案例1
- var a = 123 ;123是number
- 案例2
- var b = “123” ;字符串123
- 案例3
- console.log(Number.MAX_VALUE);
- Number.MAX_VALUE 表示数字的最大值
- 输出结果:“1.7976931348623157e+308”;
科学计数法 - Number.MIN_VALUE(最小值);输出结果:5e-324;
- console.log(Number.MAX_VALUE);
- 案例4
- var c = 123 + 456;
- console.log(c);
- 输出结果:“579”;
- 案例1
- 定义 :在JS中所有的数值都是Number类型
Boolean 布尔值
- 基础知识
- 定义:进行逻辑判断
- true 逻辑上为真
- 定义:进行逻辑判断
var bool = true;
console.log(bool); 输出true;
console.log(typeof bool); 输出 boolean;
-
-
-
- false 逻辑上为假
-
-
bool可以用来进行相等运算,比较运算和否定运算
1 == 2 → false
1< 2 → false
1 != 2 → true
if配bool值使用(if语句常需要判断真假)
非布尔值的有0 1 '0' '1'这四个为非布尔值,其他都是布尔值
if
JS中有5个fasty值(相当于false但不是false的值,很重要!!!两空两数一空字符串)
- undefined
- null
- 0
- NAN
- ''(这是空字符串)
除了这5个数,其他的都是true
Null 空值
-
-
- 定义:专门用来表示空的对象。此对象不存在。
- null (只有1个)
- var a = Null ;
- console.log(a); 输出null;
- console.log(typeof a); 输出 object;
-
Undefined 未定义 (值的类型也只有 Undefined )
-
- 定义
- 值的类型也只有 Undefined
- 声明一个变量但不能给它赋值
- 定义
null和undefined的区别:
- 本质上没有区别
- 声明一个变量未赋值,默认值为undefined
- 写一个函数,没有写return,,那么默认return undefined
- 前端程序员在习惯上把非对象的空值写为undefined,把对象的空值写为null。
类型转换:
number变为string
- String(n)
- n+''或者''+n
string变成number
- Number(s)
- parseInt(s)取整数
- parseFloat(s)取小数
- s-0
- +s(正号)
任何值变成布尔值(bool)
- Boolean(x)
- !!x(取反再取反,取原值)
任何值变成string
- String(x)
- x.toString()
Object 对象(如何引入数据)专门写一篇博客!!!
本文版权仅陈瑾仪和饥人谷共有。