JavaScript 总结

本文全面介绍了JavaScript的基本语法,包括变量声明、数据类型、算术运算、流程控制、对象和数组操作等,适合初学者快速掌握JavaScript编程基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript的引入方式

{#1 直接编写#}
    <script>
        alert('hello yuan')
    </script>
    
{#2 导入文件#}
    <script src="hello.js"></script>

直接编写时:script 里面放 js 代码,style 里面放 css 代码。

JavaScript 的基础

变量

x=5
y=6
z=x+y
  1. 变量是弱类型的
  2. 声明变量时不用声明变量类型. 全都使用 var 关键字(variable);
    var a;
  3. 一行可以声明多个变量.并且可以是不同类型.
    var name=“yuan”, age=20, job=“lecturer”;
  4. 声明变量时 可以不用 var. 如果不用 var 那么它是全局变量.
  5. 变量命名,首字符只能是字母、下划线、$ 美元符 三选一,且区分大小写,x 与 X 是两个变量
  6. 变量还应遵守以下某条著名的命名规则:
Camel 标记法
	首字母是小写的,接下来的字母都以大写字符开头。例如:
	var myTestValue = 0, mySecondValue = "hi";

Pascal 标记法
	首字母是大写的,接下来的字母都以大写字符开头。例如:
	Var MyTestValue = 0, MySecondValue = "hi";

匈牙利类型标记法(推荐)
	在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量	的类型。例如,i 表示整数,s 表示字符串,如下所示“
	Var iMyTestValue = 0, sMySecondValue = "hi";

基础规范

  • 每行结束可以不加分号,没有分号会以换行符作为每行的结束
  • 注释,支持多行注释和单行注释, /* */ //
  • 使用 { } 来封装代码块

常量和标识符
常量:直接在程序中出现的数据值

标识符

  • 由不以数字开头的字母、数字、下划线(_)、美元符号组成
  • 常用于表示函数、变量等的名称。例如:_abc,$abc,abc,abc123是标识符,而1abc不是
  • JavaScript 语言中代表特定含义的词称为保留字,不允许程序再定义为标识符

数据类型

Number 整数和浮点数

整数:
在 JavaScript 中 10 进制的整数由数字的序列组成

浮点数:
使用小数点记录数据
例如:3.4,5.6
使用指数记录数据
例如:4.3e23 = 4.3 x 1023

字符串(String)

  • 是由 Unicode 字符、数字、标点符号组成的序列
  • 字符串常量首尾由单引号或双引号括起
  • JavaScript 中没有字符类型

常用特殊字符在字符串中的表达
字符串中部分特殊字符必须加上右划线\
例如: \n : 换行 \' : 单引号 \" : 双引号 \\ : 右划线

布尔型(Boolean)

true 和 false

Null & Undefined

Undefined 类型
Undefined 类型只有一个值,即 undefined。
当声明的变量未初始化时,该变量的默认值是 undefined。
当函数无明确返回值时,返回的也是值 “undefined”;

Null 类型
Null 类型只有一个值,即 null。
值 undefined 实际上是从值 null 派生来的,因此 ECMAScript 把它们定义为相等的。

尽管这两个值相等,但它们的含义不同:

  • undefined 是声明了变量但未对其初始化时赋予该变量的值;
  • null 则用于表示尚未存在的对象。如果函数或方法要返回的是对象,当找不到该对象时,返回的通常是null。

数据类型转换

JavaScript 属于松散类型的程序语言

  • 变量在声明的时候并不需要指定数据类型
  • 变量只有在赋值的时候才会确定数据类型

表达式中包含不同类型数据则在计算过程中会强制进行类别转换:

  • 数字 + 字符串:数字转换为字符串,然后进行拼接 。 1+’hello’ —> ‘1hello’
  • 数字 + 布尔值:true 转换为 1,false 转换为 0 。 1+true —>2
  • 字符串 + 布尔值:布尔值转换为字符串 true 或 false 。 ‘hello’ + true —> ‘hellotrue’

强制类型转换函数

函数 parseInt:强制转换成整数
例如

parseInt("6.12")=6 ;  
parseInt(“12a")=12 ;  
parseInt(“a12")=NaN ;  
parseInt(“1a2")=1

NaN:当字符串转化为数字失败时,就是 NaN,属于 Number 类型。
NaN 在表达式中(!=除外),结果一定为 false。

函数parseFloat: 强制转换成浮点数

parseFloat("6.12")=6.12

函数eval:将字符串强制转换为表达式并返回结果

eval("1+1")=2 ; 
eval("1<2")=true

类型查询函数(typeof)
ECMAScript 提供了 typeof 运算符来判断一个值是否在某种类型的范围内。可以用这种运算符判断一个值是否表示一种原始类型:如果它是原始类型,还可以判断它表示哪种原始类型。
函数 typeof :查询数值当前类型
(string / number / boolean / object )

typeof("test"+3)      // "string"
typeof(null)          // "object "
typeof(true+1)        // "number"
typeof(true-false)    // "number"

算数运算符

加(+)、 减(-)、 乘() 、除(/) 、余数(% )
加、减、乘、除、余数和数学中的运算方法一样 例如:9/2=4.5,4
5=20,9%2=1

另外:
- 除了可以表示减号还可以表示负号 例如:x=-y
+ 除了可以表示加法运算还可以用于字符串的连接 例如:“abc”+“def”=“abcdef”

递增(++) 、递减(--)
假如x=2,那么 x++ 表达式执行后的值为 3,x-- 表达式执行后的值为 1
i++ 相当于 i=i+1,i-- 相当于 i=i-1
递增和递减运算符可以放在变量前也可以放在变量后:–i

注意:
先赋值,后加减

var a = 1;
var b = a++;
alert(b);      // b = 1
alert(a);      // a = 2

先加减,后赋值

var a = 1;
var b = ++ a;
alert(b);
alert(a);

例题:

var x = 1;
alert(x++);    //1
alert(++x);    // 3
alert(--x);     // 2
alert(x--);     // 2
alert(x);      // 1

一元加减法:

var a=1;
var b=1;
a=-a;  //a=-1
var c="10";
alert(typeof (c));  //string
c=+c;    //类型转换
alert(typeof (c));  //number

var d="yuan";
d=+d;
alert(d);//NaN:属于Number类型的一个特殊值,当遇到将字符串转成数字无效时,就会得到一个NaN数据
alert(typeof(d));//Number

逻辑运算符

等于 ( == ) 、不等于( != ) 、 大于( > ) 、 小于( < )
大于等于(>=) 、小于等于(<=)
与 (&&) 、或(||) 、非(!)

逻辑 AND 运算符(&&)
逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。
如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:
如果某个运算数是 null,返回 null。
如果某个运算数是 NaN,返回 NaN。
如果某个运算数是 undefined,返回 undefined。

赋值运算符

= 代表赋值
== 表示判断是否相等(类型不同,值相同也会 true, 例如 “1”==1)
=== 表示全等(类型相同,值相同才为 true)

alert(2=='2')     // true
alert(2==='2')    //false   //全等运算符不做任何转换

ECMAScript等性运算符
执行类型转换的规则如下:
a. 如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。
b. 如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
c. 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
d. 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

在比较时,该运算符还遵守下列规则:
a. 值 null 和 undefined 相等。
b. 在检查相等性时,不能把 null 和 undefined 转换成其他值。
c. 如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。
d. 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。

ECMAScript 关系运算符

var a = "Blue" < "alpha";
alert(a); //输出 true

在上面的例子中,字符串 “Blue” 小于 “alpha”,因为字母 B 的字符代码是 66,字母 a 的字符代码是 97。

比较数字和字符串:
a. 比较运算符两侧如果一个是数字类型,一个是其他类型,会将其类型转换成数字类型.
b. 比较运算符两侧如果都是字符串类型,比较的是最高位的asc码,如果最高位相等,继续取第二位比较. 例如:

alert('25'<'3')   //true

控制语句

if 控制语句

if-else 基本格式:

if (表达式){
   
语句1;
......
}else{
   
语句2;
.....
}

功能说明
如果表达式的值为 true 则执行语句 1,
否则执行语句 2

switch 选择控制语句

switch (表达式) {
   
    case1:语句1;break;
    case2:语句2;break;
    case3:语句3;break;
    default:语句4;
}

for 循环控制语句

for (初始化;条件;增量){
   
    语句1;
    ...
}

功能说明
实现条件循环,当条件成立时,执行语句 1,否则跳出循环体

for (var i=1;i<10;i++){
   
    console.log(i)
}

while 循环控制语句

while (条件){
   
语句1...
}

功能说明
运行功能和for类似,当条件成立循环执行语句花括号{}内的语句,否则跳出循环

异常处理

try {
   
    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
   
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
    //e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
   
     //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}

对象

ECMAScript 定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。
var o = new Object();

对象的概念与分类:

  1. 由 ECMAScript 定义的本地对象,独立于宿主环境的 ECMAScript 实现提供的对象.(native object)
  2. ECMAScript 实现提供的、独立于宿主环境的所有对象,在 ECMAScript 程序开始执行时出现。这意味着开发者不必明确实例化内置对象,它已被实例化了。ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。(built-in object)
  3. 所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。所有 BOM 和 DOM 对象都是宿主对象。

object对象:ECMAScript 中的所有对象都由这个对象继承而来;

  • Object 对象中的所有属性和方法都会出现在其他对象中
  • ToString() : 返回对象的原始字符串表示。
  • ValueOf() : 返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。

11种内置对象:
Array ,String , Date, Math, Boolean, Number, Function, Global, Error, RegExp , Object

创建对象:

<script language="javascript">
    var aa=Number.MAX_VALUE; //利用数字对象获取可表示最大数
    var bb=new String("hello JavaScript"); //创建字符串对象
    var cc=new Date(); //创建日期对象
    var dd=new Array("星期一","星期二","星期三","星期四"); //数组对象
</script>

在这里插入图片描述

String 对象

自动创建字符串对象:

var str1 = "hello world";
alert(str1.length);    // 15
alert(str1.substr(1,5));   // ello

手工创建字符串对象:

var str1 = new String("hello word");
alert(str1.length);  //10
alert(str1.substr(1,3));   //ell

String 对象的属性
获取字符串长度:length

String 对象的方法
在这里插入图片描述

String 对象的方法(1) —— 格式编排方法
String 对象提供了一组针对HTML格式的方法,例如:

x.anchor()返回锚定义字符串<a>x</a>,
x.bold()返回粗体表示字符串<b>x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值