JavaScript学习 - 基础(二) - 基础类型/类型转换
基础类型 - 数字类型(Number)
1.最基本的数据类型
2.不区分整型数值和浮点型数值
3.所有数字采用64位浮点格式存储,相当于Java和C语言中double格式
4.能表示的最大值 +- 1.7976931348623157 * 10308
5.能表示的最小值为 +-5 * 10 -324
6.NAN (not a number)属于Number类型的一种
整数:
在javascript中10禁止的整数由数字的序列组成
精准表达的范围是-9007199254740992(-253) 到 9007199254740992(253)
超出范围的整数,精准度将受影响
浮点数:
使用小数点记录数据
例如:
3.4 5.6
使用指数记录数据
例如:
4.3e23 = 4.3 * 1023
16进制和8进制数的表达
16进制数据前面加上0x,八进制前面加0
16进制数是由0-9,A-F等16个字符组成
8进制数由0-7等8个数字组成
16进制和8进制与2进制的换算
基础类型 - 字符串(String)
1.是由unicode字符、数字、标点符号组成的序列
2.字符串常量收尾单引号或双引号
3.Javascript中没有字符类型
4.常用特殊字符在字符串中的表达
5.字符串中部分特殊字符必须加上右划线
6.常用的转义符 \n:换行 \':单引号 \":双引号 \\:右划线
String 数据类型的使用
特殊字符的使用方法和效果
unicode的插入方法
<script>
var str="\u4f\nwecome\"js编程\"";
</script>
基础类型 - 布尔型(Boolean)
1.仅有两种值:(在js 中 true/false 都是小写)
true 代表 1
false 代表 0
实际运算中 true = 1 , false = 0
2.布尔值也可以看作on/off、1/0对应、1/0对应true/false
3.Boolean 值主要用于Javascript的控制语句:if else .
<script>
if(1){
alert("OK")
}else {
alert("NO")
}
</script> //输出为 OK
基础类型 - Null & Undefined
Undefined类型
只有一个值,即Undefined.
1.当申明的变量未初始化时,该变量默认值为Undefined.
2.当函数无明确返回值时,返回值为Undefined.
<script>
var x;
document.write("<h1>"+x+"</h1>") //输出: undefined
</script>
NUll类型
1.只有一个值,专用值null,undefined实际上也是从值null派生来的,因此ECMAscript定义它们的值相等
2.尽管这两个值相等,单它们的含义不同,undefined是声明了变量单未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象.
3.如果函数或方法要返回的是对象,name找都不到该对象时,返回的通常是null
<script>
var x = null;
</script>
数据类型转换
1.js 属于松散类型的程序语言
2.变量在声明的时候并不需要指定数据类型
3.变量只在赋值的时候才会确定数据类型
4.表达式中包含不同类型数据则在计算过程中会强制类型转换
例:
数字 + 字符串 => 数字转换为字符串
数字 + 布尔值 => 数字
字符串 + 布尔值 => 布尔值转为字符串的true或false
规则:
字符串碰到数字或者布尔值,都会将后者转换成字符串.
字符串 > 数字 or 字符串 >布尔值
布尔值 = 数字
<script>
//数字+字符
console.log(1+"2")
console.log("2"+1)
//
// //数字+布尔值
console.log(1+true)
console.log(1+false)
//
// //字符+布尔值
console.log('1'+true)
console.log('1'+false)
//1true
//1false
</script>
强制类型转换函数
parseInt()强制转换为数字
parseFloat()强制转换为浮点
eval()将字符串强制转换为表达式返回结果
<script>
//parseInt()强制转换为数字
//parseFloat()强制转换为浮点
console.log(parseInt('hello'))
console.log(parseInt('11111'))
console.log(parseInt('111he'))
console.log(parseInt('he111'))
// NaN
//
//
// NaN var x = eval('1+2')
console.log(x)
//
var x = eval('1>2')
console.log(x)
//false
</script>
类型查询函数(typeof)
运算符来判断一个值是否在某中类型的范围内.可以用这种预算符判断一个值是否表示一种原始类型.
<script>
//typeof
console.log(typeof('hello world'));
console.log(typeof(123));
console.log(typeof(true));
console.log(typeof(null));
console.log(typeof(undefined));
console.log(typeof(parseInt('hello'+1))); console.log(typeof([1,2,3])); //string
//number
//boolean
//object
//undefined
//number
//object
</script>
JavaScript学习 - 基础(二) - 基础类型/类型转换的更多相关文章
- JavaScript学习记录二
title: JavaScript学习记录二 toc: true date: 2018-09-13 10:14:53 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- C#学习笔记二: C#类型详解
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
- JavaScript学习笔记(二)——闭包、IIFE、apply、函数与对象
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- Javascript学习笔记二——操作DOM
Javascript学习笔记 DOM操作: 一.GetElementById() ID在HTML是唯一的,getElementById()可以定位唯一的一个DOM节点 二.querySelector( ...
- JavaScript 学习笔记: 扩充类型的功能
JavaScript 是允许给基本类型扩充功能的.例如,可以通过对Object.prototype增加方法,可以让该方法对所有的对象都可用. 这样的方式对函数,数组,字符串,数字,正则表达式和布尔值同 ...
- MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化
上篇文章中 我们已经创建了EF4.1基于code first的例子 有了数据库 并初始化了一些数据 今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建 ...
- https学习笔记二----基础密码学知识和python pycrypto库的介绍使用
在更详细的学习HTTPS之前,我也觉得很有必要学习下HTTPS经常用到的加密编码技术的背景知识.密码学是对报文进行编解码的机制和技巧.可以用来加密数据,比如数据加密常用的AES/ECB/PKCS5Pa ...
- 1. JavaScript学习笔记——JS基础
1. JavaScript基础 1.1 语法 严格区分大小写 标识符,第一个字符可以是 $,建议使用小驼峰法, 保留字.关键字.true.false.null不能作为标识符 JavaScript是用U ...
随机推荐
- BZOJ4785 ZJOI2017树状数组(概率+二维线段树)
可以发现这个写挂的树状数组求的是后缀和.find(r)-find(l-1)在模2意义下实际上查询的是l-1~r-1的和,而本来要查询的是l~r的和.也就是说,若结果正确,则a[l-1]=a[r](mo ...
- jQuery之制作简单的轮播图效果
[源代码] 链接:https://pan.baidu.com/s/1XpZ66D9fmSwWX3pCnGBqjA 密码:w104 [整体构思] 这个轮播图使用的是jQuery,所以Js的整体代量比较少 ...
- 浅析python日志重复输出问题
浅析python日志重复输出问题 问题起源: 在学习了python的函数式编程后,又接触到了logging这样一个强大的日志模块.为了减少重复代码,应该不少同学和我一样便迫不及待的写了一个自己的日 ...
- MT【27】对数方程组求范围
解答:3 评论:此类题目通性通法为换元后化归为线性规划问题.当然不等式凑配也是常见技巧,只是容易范围扩大或者缩小.
- 自学Linux Shell2.1-进入shell命令行
点击返回 自学Linux命令行与Shell脚本之路 2.1-进入shell命令行 进入文本命令行界面(CLI)两种方法: 控制台终端 图形化终端 1. 通过Linux控制台终端访问CLI 按下Ctrl ...
- 洛谷 P3253 [JLOI2013]删除物品 解题报告
P3253 [JLOI2013]删除物品 题目描述 箱子再分配问题需要解决如下问题: (1)一共有\(N\)个物品,堆成\(M\)堆. (2)所有物品都是一样的,但是它们有不同的优先级. (3)你只能 ...
- ThinkPHP5 隐藏index.php问题
隐藏index.php 可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则. 以Apache为例,需要在入口文件的同级添加.htaccess文件(官方默认自带了 ...
- hdu 2059龟兔赛跑("01"背包)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 看到这个题,第一反应就是DP,因为对于每个充电站,都有两种选择,充电或不充电,和 ...
- C# 同步工作站与SQL服务器的时间
/// <summary> /// 设置本机时间 /// </summary> public class LocalTimeSync { [DllImport("Ke ...
- CF786B Legacy && 线段树优化连边
线段树优化连边 要求点 \(x\) 向区间 \([L, R]\) 连边, 一次的复杂度上限为 \(O(n)\) 然后弄成线段树的结构 先父子连边边权为 \(0\) 这样连边就只需要连父亲就可以等效于连 ...