大家好,这里是「 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

  1. 使用单引号或者双引号均可。
  2. 获取字符串的长度使用 变量名.length
  3. 无法输出的字符,记得使用转义字符(\t , \, ", \ 等)
  4. 字符串拼接可以使用 + ,像在 Java 一样。
  5. 当一个是字符串,另一个是数字,并且使用 乘,减,除 号的时候,字符串会转换成数字进行计算,转换失败返回NaN。
  6. js 没有字符类型只有字符串类型,字符串使用 "" 或者 '' 都是可以的。
  7. 字符串是常量不可变的。

示例:

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,但是他们的区别是:

  1. 在进行数字运算的时候,null + 10 = 10;undefined + 10 = NaN.
  2. 任何数据类型和 undefined 运算都是 NaN;
  3. 任何值和 null 运算,null 可看做 0 运算。

8、数据类型转换

8.1、其他类型转换成String

  1. 变量+"" 或者 变量+"其他变量"
  2. String(变量)
  3. 变量.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(参数);

从零开始学 Web 之 JavaScript(二)变量的更多相关文章

  1. 从零开始学 Web 之 JavaScript(一)JavaScript概述

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  2. 从零开始学 Web 之 JavaScript(四)数组

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  3. 从零开始学 Web 之 JavaScript(五)面向对象

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  4. 从零开始学 Web 之 JavaScript(三)函数

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  5. 从零开始学 Web 之 JavaScript 高级(一)原型,贪吃蛇案例

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  6. 从零开始学 Web 系列教程

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新…… github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http:/ ...

  7. 从零开始学 Web 之 ES6(四)ES6基础语法二

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  9. 从零开始学Web之HTML(二)标签、超链接、特殊符号、列表、音乐、滚动、head等

    大家好,这里是 Daotin 从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享 ...

随机推荐

  1. [leetcode]297. Serialize and Deserialize Binary Tree 序列化与反序列化二叉树

    Serialization is the process of converting a data structure or object into a sequence of bits so tha ...

  2. est-framework框架的基本组件

    rest-framework框架的基本组件   快速实例 Quickstart 序列化 创建一个序列化类 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列 ...

  3. charles本地调试之map和rewrite功能

    charles是一款mac下代理调试工具,对于前端开发同学来说是相当方便的一个调试接口的工具:不过charles需要收费,不过在天朝几乎收费的软件都能找到破解方法: 使用charles前,需要将cha ...

  4. BZOJ2212或洛谷3521 [POI2011]ROT-Tree Rotations

    BZOJ原题链接 洛谷原题链接 线段树合并裸题. 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取\(\min\)即可. 对每个叶子节点建一棵动态开点线段树 ...

  5. 对于PHP面试知识点的小结

    基础篇 了解大部分数组处理函数 字符串处理函数(区别 mb_ 系列函数) & 引用,结合案例分析 == 与 === 区别 isset 与 empty 区别 全部魔术函数理解 static.$t ...

  6. Fabric的权限管理:Attribute-Based Access Control

    之前稍微了解过Client Identity Chaincode Library,这几天正好开始实际应用. 虽然了解过,还是发现了不少之前理解的不足,也踩了不少坑. 先列出官方介绍: https:// ...

  7. HDU 3594.Cactus 仙人掌图

    Cactus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  8. Spring 配置文件中 元素 属性 说明

    <beans /> 元素 该元素是根元素.<bean /> 元素的属性 default-init // 是否开启懒加载.默认为 false default-dependency ...

  9. 日常LINUX操作一

    1.use root accounthttp://blog.csdn.net/sunxiaoju/article/details/51993091http://blog.csdn.net/gongch ...

  10. shell脚本监控系统负载、CPU和内存使用情况

    hostname >>/home/vmuser/xunjian/xj.logdf -lh >>/home/vmuser/xunjian/xj.logtop -b -n 1 | ...