JavaScript语言核心数据类型和变量使用介绍
本文系统介绍JavaScript语言核心,涵盖变量声明(var)、基础数据类型(数字、字符串、布尔值、null、undefined)、对象与数组操作。详细解析算术、比较及逻辑运算符用法,并深入讲解函数定义、方法绑定、控制语句(if/while/for)及面向对象编程基础(构造函数与原型)。
JavaScript语言核心与数据类型
任何编程语言都具备其核心语言机制,JavaScript也不例外。语言的核心部分构成了JavaScript最基础的内容。正如俗语所言,万事开头难,学习JavaScript亦如此,而良好的开端是成功的一半。因此,深入理解并掌握JavaScript的语言核心,是开启JavaScript学习之旅的最佳起点。
以下代码示例主要展示JavaScript的数据类型与变量的使用方式:
//在script标签中,所有//后面的内容都称之为注释
//注释的作用通常是为一段JavaScript代码提供解释,使其他Web前端开发工程师或代码阅读者能够更加清晰明了地理解代码意图
//变量是一个值的符号名称,通过变量名,我们可以大致了解该变量的用途及其所属的数据类型
区分变量非常简单。变量声明前通常带有“var”关键字,即变量是通过“var”进行声明的。
var m; //声明一个变量m
//通常我们将需要声明的值通过等号赋值给变量
var m = 10; //此时变量m等于 10
m //通过变量 m 来获取刚才声明的值
//alert(m) //利用alert()函数,在浏览器中弹出m的值
//JavaScript的数据类型包括:布尔值,数字,字符串,undefined,函数,数组,对象
var n = 1; //数字
n = 0.01 //整数和实数均属于数字类型
var s = "你好"; //由双引号内的文本构成的字符串
s = '国安'; //由单引号内的文本构成的字符串
var b = false; //错误的布尔值
b = true; //正确的布尔值
var z = null; //一个null的空值,是一个特殊的类型,typeof后是对象
var u; //undefined
var j = { //一个代表json的对象
li :3, //属性“li”的值是3
meng :4 //属性“meng”的值是4
}
j["li"] //通过[]访问json中的值
j.li //通过.访问json中的值
j.long = 5 //通过赋值的方法创建新的属性
j.ai = { //通过赋值可以创建新的json
xin : 33
}
j.kong = {} //{}代表空对象,它没有属性
j.ai.xin //通过.访问新的json中的属性
var a = [2,3,2] //一个代表数组的对象
a[0] //数组中[]代表[]中数字代表位置,数组从0开始,所以a[0]是数组的第一个元素
a.length //length代表数组a的个数,3
a[a.length-1] //代表数组中的最后一个元素
a[9] = 2; //用赋值的方法添加新的元素
//若a = [],那么代表数组里的元素为零个,a.length = 0
a[0] = {
li : 333
}
//json中能包含数组,数组中也能包含json
//alert(a[0]["li"]) JavaScript运算符详解
上述代码中,可以通过“[]”、“{}”、“.”定义对象,也可以通过“[]”、“{}”、“.”来更改数组或者对象中的内容。同时,也可以利用“[]”、“{}”、“.”来读取对象中的一些数据。下面一组代码是关于运算符的:
代码如下:
//JavaScript中可以运用运算符,进行两个数之间的运算,可以产生新的值
//下面是比较常见的一些运算符,如"+"、"-"、"*"、"/"
//1、介绍运算符
10 + 10 //加法,20
10 * 10 //乘法,100
10 - 10 //减法,0
10 /10 //除法,1
var j = { //一个代表json的对象
li :3, //属性“li”的值是3
meng :4 //属性“meng”的值是4
}
j["li"] - j.meng //json j中的属性li 减去 json j中的属性meng ,结果是-1
"10" + "10" //加法可以进行字符串的拼接,结果是100
//2、JavaScript中定义了一些简写的运算符
var num = 0 //定义一个数字
num++; //代表自增,num = num + 1;
num--; //代表自减,相当于 num = num - 1;
num += 2; //代表自增2 ,相当于num = num + 2;
num *= 8; //代表自乘8 ,相当于num = num * 8;
//3、运算符进行判断
var a = 1,b = 2; //一个等号代表复制,两个变量之间用","隔开,代表同时声明
a == b; //结果是false 意思是a和b是相等吗
a != b; //结果是true 意思是a和b不相等吗
a < b; //结果是true 意思是a小于b吗
a <= b; //结果是true 意思是a小于或者等于b吗
a > b; //结果是false 意思是a大于b吗
a >= b; //结果是false 意思是a大于或者等于b吗
"two" == "three"; //true "tw"在字母表中的索引大于"th"
false > (a > b) //结果是true 意思是false和false进行比较
//4、逻辑运算符
(a == 2) && (b == 3) //结果是true。a是等于2 并且 b是等于3 的吗 。&&代表并且的意思
a > 2 || b > 2 //结果true ,第一个是false,第二个是true,由于 || 代表或的意思
!(a == b) //结果是true 。! 是 求反 的意思 运算符中,仅仅算出个值并不影响任何操作的都叫做表达式,并不改变程序的运行状态。而语句是不包含一个值,但是它改变运行状态。语句由于改变运行状态,所以后面加分号。
JavaScript函数与控制语句
每个函数都有自己的名字,通过名字可以调用执行某一个函数,可以定义一次,调用多次。下面是简单的函数小例子。
代码如下:
//1、函数是一段带有参数的JavaScript代码段,可以一次定义,多次调用,也可以带有参数
var a = 3; //声明一个值为3的变量a;
function fn1 (n) { //一个参数为n名为fn1的函数
return n+1; //返回一个比传入的值大一的值
}
fn1(a) //结果是4,由于刚才声明的a的值为3,所以调用函数时候,执行 a+1 也就是3+1
var fOne = function(m) { //函数也是一种数据类型,所以也可以把变量赋值成一个函数
return m*m; //返回一个数值,进行 参数 * 参数 的运算
}
fOne(a) //结果是 9
//2、方法,把函数赋值给变量的属性
var arr = []; //创建一个新数组
arr.push(1,2,3); //用push()方法向arr数组里从后添加元素
arr.reverse(); //用reverse()方法将数组中的元素顺序反转
var points = [ //声明一个元素中是json的数组
{a : 0,b : 0},
{a : 1,b : 1}
]
points.dist = function () { //在声明的数组中定义一种计算两点之间距离的方法
var p1 = this[0]; //用this获取当前数组的引用
var p2 = this[1]; //并且赋值给两个新的变量
var a = p2.a - p1.a; //x轴上的距离
var b = p2.b - p1.b; //y轴上的距离
return Math.sqrt(a*a + b*b) //用Math()中的sqrt()计算平方根从而得到两点之间的距离
}
alert(points.dist()) //结果是1.414
//3、控制语句
//条件语句和循环语句被称之为控制语句
function abs (m) { //求绝对值函数
if (m >= 0) { //如果比较结果为true
return m; //返回 m
}else { //若比较结果为false
return -m; //返回 -m
}
}
function factorial (n) { //计算阶乘的函数
var num = 1; //声明一个值为1的变量
while (n > 1) { //当()内的表达式为true时候,执行循环{}内的代码
num *= n; //相当于 num = num * n
n--; //相当于 n = n -1
}
return num //返回阶乘的结果
}
factorial(4) //结果是24
function factorialFor (n) { //用for循环实现阶乘
var i, num = 1; //声明变量i,并且声明值为1的变量num
for (i=2; i <= n ; i++) { //将i从2循环到n
num *= i; //循环体,当循环体中只有一句话的时候可以省略{}
}
return num; //返回计算好的阶乘表
}
factorialFor(5) 从函数例子中可以看出,不管是while循环还是for循环,不管是判断语句还是循环语句,都算得上是控制语句。通过一定的条件控制将要发生的事情。
JavaScript面向对象基础
介绍完函数,接下来简单介绍一下面向对象。
代码如下:
//定义一个构造函数,就是先创造一个初始化的对象
function Point (x,y) { //构造函数名的第一个字母要大写
this.x = x; //this代表的就是这个初始化对象
this.y = y; //将函数的参数存到这个初始化对象的属性中
} //构造函数中不需要返回,return什么东西
//使用new关键字,和构造函数,创建一个新的对象
var p = new Point(1,1); //创建一个平面坐标为(1,1)的点
//通过给构造函数原型赋值,来给Point新创建的对象添加方法
Point.prototype.r = function () {
return Math.sqrt(
this.x*this.x + this.y*this.y
); //利用Math中的sqrt()方法进行开平方根运算。this指代的是调用方法的对象
}
p.r() //结果是1.414 上面的例子是教大家如何定义一个有求平方根方法的点。JavaScript的面向对象和其他编程语言的面向对象有一些区别。具体的区别呢,我们只能继续往下研究,才能知道。
JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
