作者:WangMin

格言:努力做好自己喜欢的每一件事

变量

赋值变量用 var 关键字,情况如下:

1)先声明变量再赋值

var varName;
varName="你好~";

var - 用于声明变量的关键字

varName - 变量名

2)同时声明和赋值变量

var varName="你好~";
var a=10,b=20,c=30;

注意:多个变量同时声明与赋值时需要用逗号','隔开。

3)不声明直接赋值 (不推荐使用)

varName="你好~";

注意:变量可以不经声明而直接使用,但这种方法很容易出错,也很难查找排错,不推荐使用。

4)变量命名规范

  • 由字母(a-zA-Z)数字(0-9)下划线(_)以及美元符号($);
  • 不能由数字开头,如果以数字开头,直接报错;
  • 变量名中不允许使用空格和其他标点符号;
  • 不允许使用中文;
  • 变量名长度不能超过255个字符,变量命名长度应该尽可能的短,并抓住要点,尽量在变量名中体现出值的类型;
  • 命名尽量用英文并且具有一定的含义;
  • 尽量驼峰式 命名,由多个单词组成时,每个单词的首字母大写,例如:var tagName="";
  • 不能使用关键字与保留字、true、false 和 null;
  • 首字母不要大写,大写是有特殊含义的,因为JavaScript 区分大小写;
  • JS语句结束后要以";"结束。

数据类型

JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等。具体如下:

1) Number 数值类型(基本数据类型)

在JS中所有的数值都是Number类型(整数和小数),还有特殊的是NaN也是数值类型。最基本的数值类型字面量格式是十进制整数。例如:

var num=12;
var num=3.14;

注意:

  • 由于内存的限制,ECMAScript 并不能保存世界上所有的数值
  • 最大值:Number.MAX_VALUE
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
  • 最小值:Number.MIN_VALUE
console.log(Number.MIN_VALUE); // 5e-324
  • 无穷大:Infinity, 如果超过了最大值就会返回该值
console.log(Number.MAX_VALUE + Number.MAX_VALUE); // Infinity
  • 无穷小:-Infinity, 如果超过了最小值就会返回该值
console.log(typeof -Infinity); // number
  • NaN 非法数字(Not A Number),JS中当对数值进行计算时没有结果返回,则返回NaN
var num=NaN;
console.log(typeof num);//number

上面提到的typeof是JavaScript中来判断数据类型的,下面会讲到。

  • JS中整数的运算可以保证精确的结果
  • 在JS中浮点数的运算可能得到一个不精确的结果

2) String 字符串类型(基本数据类型)

一组被引号(单引号或双引号)括起来的字符组成的文本内容,例如:

var string="你好,世界";

注意:引号不能一单一双,必须成对出现 。相同引号不能嵌套,不同引号可以嵌套。给变量加上引号, 那么变量将变为一个常量。

3)布尔值 boolean类型 (基本数据类型)

布尔型也被称为逻辑值类型或者真假值类型, 只能够取真(true)和假(false)两种数值,但是JS会把他们解析成1(true),0(false)。例如:

var a=1;
var b=0;
console.log(a==true,b==false)

注意:

  • 任何非零数值都是true, 包括正负无穷大, 只有0和NaN是false
  • 任何非空字符串都是true, 只有空字符串是false
  • 任何对象都是true, 只有null和undefined是false

4)Undefined (特殊数据类型)

Undefined这是一种比较特殊的类型,表示变量未赋值或者不存在,这种类型只有一种值就是undefined。例如:

var num;
console.log(num); //结果是undefined

注意:undefined是Undefined类型的字面量。

  • undefined和10, "abc"一样是一个常量
  • Undefined和Number,Boolean一样是一个数据类型
  • 需要注意的是typeof对没有初始化和没有声明的变量都会返回undefined。

5)null(特殊数据类型)

Null 类型是表示一个空值,也是只有一个值的数据类型,这个特殊的值是 null。从语义上看null表示的是一个空的对象,所以使用typeof检查null会返回一个Object。例如:

var test=null;
console.log(typeof test);//返回了一个Object

注意:undefined值实际上是由null值衍生出来的,所以如果比较undefined和null是否相等,会返回true

console.log(null==undefined);//返回true

6)Object对象(引用数据类型)

这里不过多的介绍,因为Object对象属于较复杂的数据类型,需要单独来理解。

typeof运算符

typeof检测变量的数据类型,返回值如下:

返回值 含义
undefined 变量被声明后,但未被赋值。
string 用单引号或双引号来声明的字符串。
boolean true或false。
number 整数或浮点数。
object javascript中的对象、数组和null。

数据类型转换

转换函数

1)将其它类型转换为字符串,调用被转换数据类型的 toString() 方法。例如:

var num1=1;
var num2=false;
var arr=[1,2,3];
var a={};
function fun(){};
num1.toString(); //"1"
num2.toString();//"false"
arr.toString();//"1,2,3"
a.toString();//"[object Object]"
fun.toString();//"fun.toString()"

注意:

  • null和undefined这两个值没有toString()方法,如果调用他们的方法,会报错。
  • 该方法不会影响到原变量,它会将转换的结果返回。

2) parseInt() 解析出一个string或者number类型的整数部分,如果没有可以转换的部分,则返回NaN(not a number)。例如:

var num1 = "12";
var num2 = "23hello";
var num3= "hello";
var num4="1.2";
parseInt(num1); //12
parseInt(num2); //23
parseInt(num3); //NaN
parseInt(num4); //1

当parseInt()提取字符串中的整数时,应注意:

  • 从第一位有效数字开始, 直到遇到无效数字。
  • 如果第一位不是有效数字, 什么都提取不到, 会返回NaN。
  • 第一个参数是要转换的字符串,第二个参数是要转换的进制。

3)parseFloat() 解析出一个string的浮点数部分(也就是小数部分),如果没有可以转换的部分,则返回NaN(not a number)

var num1 = "1.2.3";
var num2 = "1.23hello"
var num3 = "hello"
console.log(parseFloat(num1)); //1.2
console.log(parseFloat(num2)); //1.23
console.log(parseFloat(num3)); //NaN

当parseFloat()提取字符串中的小数时,应注意:

  • 会解析第一个小数点’.’, 遇到第二个.或者非数字结束。如上面的变量num1,保留小数部分后为1.2。
  • 如果第一位不是有效数字, 什么都提取不到,则返回NaN(not a number)
  • 不支持第二个参数,只能解析10进制数
  • 如果解析的内容里只有整数,解析成整数

parseInt()函数与parseFloat()函数的共同点与区别:

  1. 共同点:利用parseInt()/parseFloat()都可以提取字符串中的有效整数
  2. 两者之前的区别:是前者只能提取整数,后者可以提取小数

强制类型转换

1)Boolean(value) - 把给定的值转换成Boolean型,例如:

console.log(Boolean(123)); //true
console.log(Boolean("")); //false
console.log(Boolean([])); //true
console.log(Boolean({})); //true
console.log(Boolean(null)); //false
console.log(Boolean(undefined)); //false

2)Number(value)-把给定的值转换成数字(可以是整数或浮点数),例如:

  • 如果是纯数字的字符串,则直接将其转换为数字
console.log(Number("123")); //123
  • 如果字符串中有非数字的内容,则转换为NaN
console.log(Number("123h")); //NaN
  • 如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
console.log(Number("")); //0
  • 将布尔值转换为数字
console.log(Number(true)); //1
console.log(Number(false)); //0
  • 将null转换为数字
console.log(Number(null)); //0
  • 将undefined 转换为数字
console.log(Number(undefined)); //NaN

注意: Number()函数中无论混合字符串是否存在有效整数都会返回NaN,例如Number("123h")。

3)String(value)- 把给定的值转换成字符串

  • 对于Number和Boolean也可以调用String()方法,只是调用的方式不同。如下:
var num1 = 10;
var res1 = String(num1); // 重点
console.log(res1); // 10
console.log(typeof res1); // string var num2 = true;
var res2 = String(num2); // 重点
console.log(res2); // true
console.log(typeof res2); // string
  • 如果想要把undefined和null转换为字符串的话,可以使用String()方法,如下:
var num3 = undefined;
var res3 = String(num3);
console.log(res3); // undefined
console.log(typeof res3); // string var num4 = null;
var res4 = String(num4);
console.log(res4); // null
console.log(typeof res4); //string

隐式转换

1)任何数据+字符串:转换为字符串

任何数据和 +"字符串" 连接到一起都会转换为字符串,内部实现原理和String()函数一样,例如:

/*数字+''*/
var num1 = 10;
var res1 = num1 + "";
console.log(res1); // 10
console.log(typeof res1); // string
/*Boolean+''*/
var num2 = true;
var res2 = num2 + "你好";
console.log(res2); // true你好
console.log(typeof res2); // string
/*undefined+''*/
var num3 = undefined;
var res3 = num3 + "";
console.log(res3); // undefined
console.log(typeof res3); // string
/*null+''*/
var num4 = null;
var res4 = num4 + "";
console.log(res4); // null
console.log(typeof res4); // string

2)数字+布尔值:会先将布尔值用Number()进行数字转换(转换过程我们看不到),true转换为1,false转换为0,然后在与数字进行运算。例如:

/*数字+true*/
var num1 = 10;
var res1 = num1 + true;
console.log(res1); // 11
console.log(typeof res1); // number /*数字+false*/
var num1 = 10;
var res1 = num1 + false;
console.log(res1); // 10
console.log(typeof res1); // number

3)布尔值+布尔值 :将布尔值分别用Number()进行数字转换(转换过程我们看不到),true转换为1,false转换为0,然后进行运算。例如:

var num=true+false;
console.log(num);//1+0=1

以上仅是个人见解,若有不足之处欢迎在下方评论指出,那就先分享到这里!! 后续继续更新!!

JavaScript 语法:变量、数据类型及数据类型转换的更多相关文章

  1. python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  2. 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏

    一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...

  3. (4)C#变量,常量,数据类型,转义字符,数据类型转换

    一.变量 程序运行期间能够被改变的量称为变量. 变量名称要用小写字母开头,避免用下划线开头. 如果包含多个单词,从第二个单词开始首字母都要大写. 定义并初始化 double pi = 3.14 二.常 ...

  4. javascript学习3、数据类型、数据类型转换、运算符

    数据类型包括:基本数据类型和引用数据类型 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 ...

  5. JavaScript(二):JavaScript语法及数据类型

    一.JavaScript语法 1.区分大小写ECMAScript中的一切,包括变量.函数名和操作符都是区分大小写的.例如:text和Text表示两种不同的变量.2.标识符所谓标识符,就是指变量.函数. ...

  6. 02.JS数据类型与数据类型转换

    前言:   学习一门编程语言的基本步骤 (01)了解背景知识 (02)搭建开发环境 (03)语法规范 (04)常量和变量 (05)数据类型 (06)数据类型转换5.数据类型——datatype  数据 ...

  7. Objective-C数据类型、数据类型转换

    数据类型 1.Objective-C数据类型可以分为:基本数据类型.对象数据类型和id类型. 2.基本数据类型有:int.float.double和char类型. 3.对象类型就是类或协议所声明的指针 ...

  8. Python基础之模块、数据类型及数据类型转换

    一.模块 1.标准库 不需要安装,直接调入使用的模块. import sys模块: import sys print(sys.path) #打印环境变量绝对路径 print(sys.argv) #打印 ...

  9. (6)java基础知识-基本数据类型、数据类型转换

    一.基本数据类型 基本的数据类型一共有四类八种 1.整型 byte:  1字节 取值范围 -128~127 short: 2字节    取值范围 -32768~32767 int:     4字节 取 ...

  10. Swift数据类型及数据类型转换

    整型  Swift 提供 8.16.32.64 位形式的有符号及无符号整数.这些整数类型遵循 C 语言的命名规 约,如 8 位无符号整数的类型为 UInt8,32 位 有符号整数的类型为 Int32 ...

随机推荐

  1. linux top中 VSS,RSS,PSS,USS 4个字段的解读

    参考文章:linux中top命令 VSS,RSS,PSS,USS 四个内存字段的解读

  2. Vue笔记(一)

    1. Vue.js是什么? 1). 一位华裔前Google工程师(尤雨溪)开发的前端js库 2). 作用: 动态构建用户界面 3). 特点: * 遵循MVVM模式 * 编码简洁, 体积小, 运行效率高 ...

  3. 超详细的mysql总结(DQL)

    上一篇文章总结了 DDL.DML的使用,这一篇文章把剩下的 DQL 加上~   DQL(Data Query Language)即数据库查询语言,用来查询所需要的信息,在查询的过程中,需要判断所查询的 ...

  4. 银河麒麟v10安装达梦数据库

    简介 达梦数据库是商业化的国产关系型数据库,体系架构比较像Oracle. 官方在线手册 原生安装 系统版本:银河麒麟V10服务器版 数据库版本:DM8 下载官方安装包,解压后有个ISO文件和包含sha ...

  5. [python]爬取手机号码前缀和地区信息

    概述 使用python爬取手机号码前缀7位.区号和地区. 小网站不容易,对爬虫也挺友好,就不放链接了. 代码 import requests from lxml import etree from f ...

  6. XAML格式化工具:XAML Styler

    XAML格式化的意义 在开发WPF应用过程中,编写XAML时需要手动去缩进或者换行,随着时间的推移或者参与开发的人增多,XAML文件内容的格式会越来越乱.要么属性全都写在一行,内容太宽一屏无法完整展现 ...

  7. 一个简单利用WebGL绘制频谱瀑布图示例

    先看效果 还是比较节省性能的,这个还是包含了生成测试数据的性能,实际应用如果是直接通信获得数据应该还能少几毫秒吧! 准备工作 用了React,但是关系不大 WebGL的基础用法(推荐看一看掘金里的一个 ...

  8. WPF中非递归(无后台代码)动态实现TreeView

    在UI界面中,树形视图是比较常用的表示层级结构的方式,WPF中提供了TreeView控件.对于TreeView控件的基本使用已经有很多文章.大都是介绍如何在XAML中使用硬编码的固定信息填充Treev ...

  9. 半导体行业通信标准SECS/GEM协议一看就懂的

    半导体行业通信标准SECS/GEM透析 HSMS通信的设备端通常为客户端(Equipment)(也可称为Active 在通信中主动连接对方的),工厂会部署服务端(Host)(也可称为Passive 被 ...

  10. Git-入门使用资料

    一.Git入门教程 Git入门视频,针对于小白快速入门,时常约2~3小时 Git入门视频 相关课件资料: https://pan.baidu.com/s/1U-s4OmkToXJ5Y7BbJ7w2Ww ...