JavaScript变量与基本数据类型

简介: JavaScript变量与基本数据类型

  JavaScript(JS)是一种具有函数优先特性的轻量级、解释型或者说即时编译型的编程语言。虽然作为 Web 页面中的脚本语言被人所熟知,但是它也被用到了很多非浏览器环境中,例如 Node.js、Apache CouchDB、Adobe Acrobat 等。进一步说,JavaScript 是一种基于原型、多范式、单线程的动态语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。


一、声明变量


(1)let


let 变量名 = 值;


let声明的变量可以被多次赋值,例如:


 let a = 100;  // 初始值是 100
 a = 200;   // ok, 被重新赋值为 200


(2)const


const修饰的叫常量,只能赋值一次


 const b = 300; // 初始值是 300
 b = 400;    // error, 不能再次赋值


const并不意味着它引用的内容不可修改,例如:


 const c = [1,2,3];
 c[2] = 4;          // ok, 数组内容被修改成 [1,2,4]
 c = [5,6];     // error, 不能再次赋值


(3)var


var声明的变量可以被多次赋值,例如:


 var f = 100;
 f = 200;


二、基本类型


(1)undefined和null


  • 执行表达式或函数,没有返回结果,出现 undefined

  • 访问数组不存在的元素,访问对象不存在的属性,出现 undefined

  • 定义变量,没有初始化,出现 undefined


例如:


console.log(1);   // 函数没有返回值, 结果是  undefined
let a = 10;     // 表达式没有返回值, 结果是 undefined
let b = [1,2,3];
console.log(b[10]); // 数组未定义元素是 undefined
let c = {"name":"张三"};
console.log(c.age); // 对象未定义属性是 undefined
let d;
console.log(d);   // 变量未初始化是 undefined


二者共同点


  • 都没有属性、方法

  • 二者合称 Nullish


二者区别


  • undefined 由 js 产生

  • null 由程序员提供


(2)string


js字符串有三种写法:


let a = "hello";  // 双引号
let b = "world";  // 单引号
let c = `hello`;  // 反引号


HTML代码,用java和js中的表示对比:


java表示,比较繁琐:


 String s2 = """
     <a href="1.html">超链接</a>""";


js比较灵活:


 let s1 = '<a href="1.html">超链接</a>';
let s2 = `<a href="1.html">超链接</a>`;


模板字符串(Template strings)


需求:拼接URL的请求参数,如:


/test?name=zhang&age=18


/test?name=li&age=20


传统方法拼接:


let name = ; // zhang li ...
let age = ; // 18 20 ...
let uri = "/test?name=" + name + "&age=" + age;


模板字符串方式:


let name = ; // zhang li ...
let age = ; // 18 20 ...
let uri = `/test?name=${name}&age=${age}`;


(3)number和bigin


number类型标识的是双精度浮点小数,例如:


10 / 3;   // 结果 3.3333333333333335


既然是浮点小数,那么可以除零:


 10 / 0;    // 结果 Infinity 正无穷大
 -10 / 0;  // 结果 -Infinity 负无穷大


浮点小数都有运算精度问题,例如:


2.0 - 1.1; // 结果 0.8999999999999999


字符串转数字


parseInt("10");   // 结果是数字 10 
parseInt("10.5"); // 结果是数字 10, 去除了小数部分
parseInt("10") / 3; // 结果仍视为 number 浮点数, 因此结果为 3.3333333333333335
parseInt("abc");  // 转换失败,结果是特殊值 NaN (Not a Number)


要表示真正的整数,需要用bigint,数字的结尾用n表示它是一个bigint类型


10n / 3n;     // 结果 3n, 按整数除法处理


(4)boolean


在js中,并不是boolean才能用于条件判断,可以在if语句中使用【数字】、【字符串】...作为判断


let b = 1;
if(b) { // true
    console.log("进入了");
}


这时就有一个规则,当需要条件判断时,这个值被当做true还是false,当做true的值归类为truthy,当做false的值归类为falsy


下面的值是falsy:


false


Nullish (null, undefined)


0, 0n, NaN


"" '' `` 即长度为零的字符串


剩余的值绝大部分都是truthy


有几个容易被当做falsy实际上是truthy的


"false", "0" 即字符串的 false 和 字符串的零


[] 空数组


{} 空对象


(5)symbol


使用较少,需要的可以在下面网址查阅


JavaScript | MDN (mozilla.org)


https://developer.mozilla.org/zh-CN/docs/Web/JavaScript


目录
相关文章
|
17天前
|
JavaScript 前端开发
js变量的作用域、作用域链、数据类型和转换应用案例
【4月更文挑战第27天】JavaScript 中变量有全局和局部作用域,全局变量在所有地方可访问,局部变量只限其定义的代码块。作用域链允许变量在当前块未定义时向上搜索父级作用域。语言支持多种数据类型,如字符串、数字、布尔值,可通过 `typeof` 检查类型。转换数据类型用 `parseInt` 或 `parseFloat`,将字符串转为数值。
18 1
|
13天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
1天前
|
JavaScript 前端开发
JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束
JavaScript闭包允许内部函数访问并保留外部函数的变量,即使外部函数执行结束。在游戏开发中,闭包常用于创建独立状态的角色实例。例如,`createCharacter`函数生成角色,内部函数(如`getHealth`、`setHealth`)形成闭包,保存角色的属性(如生命值)。这样,每个角色实例都有自己的变量副本,不互相影响,从而实现角色系统的独立性。
7 0
|
7天前
|
存储 JavaScript 前端开发
js的变量以及运算
js的变量以及运算
12 1
|
7天前
|
JavaScript 前端开发
关于js变量
关于js变量
16 1
|
7天前
|
JavaScript 前端开发
js的变量
js的变量
13 2
|
14天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
14天前
|
存储 JavaScript 前端开发
JavaScript引用数据类型
JavaScript引用数据类型
|
14天前
|
JavaScript 前端开发
JavaScript 基本数据类型
JavaScript 基本数据类型
|
14天前
|
JavaScript 前端开发
【Web 前端】JS中检测数据类型的有哪些?
【4月更文挑战第22天】【Web 前端】JS中检测数据类型的有哪些?