从零开始学 Web 之 JavaScript(二)变量
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程。此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注。在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!
一、变量
1、变量的声明和初始化
var number; // 变量的声明,没有赋值
var name = "Daotin"; // 变量的初始化
2、命名规则(驼峰命名)
- 变量命名必须以字母或是**下标符号 "_" 或者 "$" 为开头。
- 变量名长度不能超过 255 个字符。
- 变量名中不允许使用空格,首个字不能为数字。
- 不用使用脚本语言中保留的关键字及保留符号作为变量名。
- 变量名区分大小写。
- 汉语可以作为变量名。但是不建议使用!
3、数据类型
查看数据类型的方法:typeof name;
或 typeof(name);
PS:null 的数据类型是 Object。
基础数据类型:String,Number,Boolean,unsigned、null
复杂数据类型:Object,function,Array,Date,Error 等
4、Number
4.1、进制
var num = 10; // 十进制
var num = 012; // 八进制:0开头
var num = 0xA; // 十六进制:0x开头
4.2、数值范围
最小值: Number.MIN_VALUE
,这个值为: 5e-324
最大值: Number.MAX_VALUE
,这个值为: 1.7976931348623157e+308
无穷大: Infinity
无穷小: -Infinity
4.3、不要用小数去验证小数
var num1 = 0.1;
var num2 = 0.2;
console.log(num1+num2); // 0.30000000000000004
console.log(0.07*100); // 7.000000000000001
4.4、NaN
NaN:(Not a Number)本来应该得到一个数值的,但是结果却并不是一个数值。
console.log("abc"/18); // 结果是NaN
1、undefined 和任何数值计算为 NaN;
2、NaN 与任何值都不相等,包括 NaN 本身。
3、isNaN(); 任何不能被转换为数值的值都会导致这个函数返回 true。
5、String
- 使用单引号或者双引号均可。
- 获取字符串的长度使用
变量名.length
- 无法输出的字符,记得使用转义字符(\t , \, ", \ 等)
- 字符串拼接可以使用 + ,像在 Java 一样。
- 当一个是字符串,另一个是数字,并且使用 乘,减,除 号的时候,字符串会转换成数字进行计算,转换失败返回NaN。
- js 没有字符类型只有字符串类型,字符串使用 "" 或者 '' 都是可以的。
- 字符串是常量不可变的。
示例:
var str = "hello";
str[0] = "w";
console.log(str); // 还是 hello
var str = "hello";
str = "world";
console.log(str); // 是 world,这个不是改变了当前str地址的字符串的值,而是str指向了新的字符串,旧的字符串的值仍然没有更改。
6、Boolean
Boolean类型只有两个字面量: true 和 false 。但是所有类型均有与这两个 Boolean 值等价的值。
下面类型为 true:true、除0数字、"something"、Object(任何对象)
下面类型为 false:false、0 、""(空字符串)、undefined 、null、NaN
7、undefined 与 null
虽然 undefined 和 null 都为 false,但是他们的区别是:
- 在进行数字运算的时候,null + 10 = 10;undefined + 10 = NaN.
- 任何数据类型和 undefined 运算都是 NaN;
- 任何值和 null 运算,null 可看做 0 运算。
8、数据类型转换
8.1、其他类型转换成String
-
变量+""
或者变量+"其他变量"
String(变量)
-
变量.toString();
// 注意:undefined 和 null 不可以
var bool = true;
var num = 111;
var aaa;
var bbb = null;
console.log(typeof(bool+"")); // string
console.log(typeof(num+"")); // string
console.log(typeof(aaa+"")); // string
console.log((aaa+"")); // undefined
console.log(typeof(bbb+"")); // string
8.2、其他类型转换成 Number
此转换容易产生 NaN,一旦被转换的变量中含有非数字字符,都容易出现 NaN.
**1. 变量 -*/ 一个数字(有非数字字符会出现 NaN)**
var num1 = "11" - 0;
var num2 = "11" * 1;
var num = "11" / 1;
2. Number(变量);(有非数字字符会出现NaN)
Number("11");
Number(""); // 空字符串返回 0
3. parseInt() 和 parseFloat()(译为取整和取浮点数)
空字符串:parseInt("") 和 parseFloat("") 返回 NaN。
parseInt(变量):如果变量中首字符为字母则结果为 NaN。否则取出现首个非数字前的整数。 123 = parseInt(“123.123aaaa”);
parseFloat(变量):如果变量中首字符为字母则结果为 NaN。否则取出现首个非数字前的浮点数。(如果没有小数的话取整) 123.123 = parseFloat(“123.123aaaa”);
PS:
true 数值为 1;false 为0;
null 的数值类型为 0;
undefined 无数值类型或者为 NaN。
8.3、其他类型转换成 Boolean
任何数据类型都可以转换成 boolean 类型,所以和以上两个转换不同。将任意类型作为参数传入 Boolean(参数)
中,都可以转换成布尔值。
下面类型为 true:true、除0数字、"something"、Object(任何对象)
下面类型为 false:false、0 、""(空字符串)、undefined 、null、NaN
Boolean(参数);

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
6月5日云栖精选夜读丨为爱“+”持,萌化了!公益二代C位出道造型,你们pick哪个?
据说,上周五的头条 被一群鸭纸占领了, 咳咳咳,是时候把位置还给咱们的主角 ——孩子们啦! 这场“加法行动”, 源于关爱宝贝大型线上爱心活动 “为宝贝拼出一个‘+’”, 参与者当然少不了 我们的宝贝孩子啦~ 他们凹出的各种造型, 真的是萌化了! 在微笑明天慈善基金会工作的妈妈 下班回家, 准备比个“+”拍张照, “我也要拍!” 拍美照怎么少得了我? 女女看见了马上跑了过来, 学着妈妈的样子用小手拼出了一个“+”, 再加上一个温情对视, 俘获了不知多少人的心。 热点热议 为爱“+”持,萌化了!公益二代C位出道造型,你们pick哪个? 作者:技术小能手 新零售之后,阿里巴巴又提出一个影响未来的概念 作者:技术小能手 八年磨一剑,阿里云ApsaraDB for HBase2.0正式上线 作者:天斯 知识整理 PowerDesigner设置唯一约束/唯一索引/唯一键 作者:easonjim 3 个 Python 模板库比较 作者: 技术小能手 如何使用 Arduino 制作一个绘图仪 作者:技术小能手 当大数据满足数据可视化时,如何使数据变得可操作 作者:技术小能手 MySQL慢查询记录原理和...
-
下一篇
HiSDP —— 高效的C++软件开发平台
目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的。 缘由 当决定采用C++编程语言去开发一个软件时,紧接着所面临的问题是软件库、平台与框架的选择。当然,选择的范围估计很大程度来自开源软件。进一步地,无外乎两种思路: 根据所开发软件的需要选择各种合适的开源软件,然后将这些开源软件组合到一起去完成软件开发工作。这种方式所带来的问题在于,将各个开源软件拼凑到一起需要耗费一定的精力。此外,可能因为踩各开源软件中的坑而导致最终软件产品的稳定期拉得更长,后期的维护成本也更高。 采用市面上成熟的大型开源软件项目,对之进行裁剪去满足项目开发的需要。这一方式虽说在裁剪上需要消耗一定的精力(这是一次性的工作内容),但由于大型项目的成熟确保了其所选择的各个开源子项
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程