S2J's Studio.

JavaScript学习

字数统计: 1.2k阅读时长: 4 min
2019/04/27 Share

每周更新

基本概念

基础

    基本类型方面大致与java类似,本篇文章将根据学习进度持续更新一些不同之处。

    同java一样条件控制语句有时候可以不用花括号来将他包裹,但为了代码意图清晰度,建议全部用代码块,哪怕只有一条语句。
ECMScript的变量没有int、String、double等数据类型的声明,只需要用var便可自动定义。

    基本数据类型有五种:Undefined、Null、Boolean、Number、String和一种复杂数据类型Object,
可使用typeof来检测数据类型。

数据类型 含义
Undefined 使用var但并未初始化
Null 观察对象是否保存对象
Number 数值类型
String 字符串
Object 对象

    这里要注意Number里有一个特殊类型 NaN——非数值,两大特点:1,任何涉及NaN的操作都返回NaN
2.NaN与任意值不相等,包括NaN。

    为了准确的表示你想表示的进制,一般会使用parseInt(“数字”,进制)来确定数字进制,建议十进制也这样写。

语句方面

    多了一个新的语句 with——为了简化同一个对象的工作

1
2
var qs =location.search.substring(1);
var url=location.href;

使用with后

1
2
3
4
with(location){
var qs=search.substring(1);
var url=href;
}

大量使用会导致性能下降,开发大型程序时不建议使用。

由于ECMScript 不能进行方法的重载,所以一般都使用arguments对象和参数一起使用来代替重载

1
2
3
4
5
6
7
function doAdd(num1,num2){
if(argument.length==1){
alert(num1+10);
}else if(arguments.length==2){
alert (argument[0]+num2);
}
}

作用域

同java一样变量和函数有他的作用域,JavaScript提供一种延长作用域的方法就是上面的with语句

1
2
3
4
5
6
7
function buildUrl(){
var qs="?debug=true";
with(location){
var url= href+qs;
}
return url;
}

在这里调用了location中的href这个本不在buildUrl作用域的变量,因为使用with接收了location这个对象,就类似与java中location.href

还有一个很特殊的就是JavaScript中如果没用var声明,将会自动归为全局变量,所以为了避免混淆,一般最好声明变量,而且访问局部变量的速度也要比全局变量来的快得多。

引用类型

有点类似与java中的对象引用

引用类型:Object,Array,Date,Function,RegExp

Object

这里出现了两种引用方式:

1、常见的new方法。就像那个笑话:没对象,我们就new一个出来。

2、类似于java对象的定义,叫对象字面量表示法

1
2
3
4
var person ={
name:"sjj",
age:20 //为对象属性赋值
}

因为我们的属性名可以使用关键词和保留字,所以除了和java里那样使用点表示法访问参数,
也可以使用方括号语法,方括号也可以通过变量来访问

1
2
person.name;//点表示法
person["name"];//方括号语法

Array

数组类型,有别于java的是,它并不规定保存的类型,这就很无赖,第一个可以存数字,第二个可以存字符串,第三个甚至可以放对象,连大小也可以动态调整,可以说是非常随意了。

同样创建数组的方法也有两种:

1、 Array构造方法

2、 数组字面量表达法

1
2
var color= new Array ;//Array构造方法
var colors = ["red","blue","green"];//数组字面量表达法

前面提到了数组的长度可以动态调整,只需要手动设置length值便可以改变大小。

也提供了检测是否为数组的方法:isArray,转换为字符串:toString(),
一些方法

名称 表达
是否为数组 isArray
转换为字符串 toString()
字符串间隔方式的改变 join()
栈方法 push()将数据推入数组最后并返回、pop()将数组最后一项移除并返回
队列方法 push()将数据推入数组最后并返回、shift()将数组第一项移除并返回、unshift()在数组前端插入项并返回
重排序方法 reverse()反转顺序、sort()按升序排序

同时使用栈方法和队列方法可以很方便的在数组插入移除数据。

接下来介绍一个强大的数组方法,可以在任意位置删除、插入、替换项,极其方便。

splice(起始位置,删除项数,插入项)

查找项的位置: indexOf(查找项,查找起点)、lastindexOf(查找项,查找起点)

CATALOG
  1. 1. 每周更新
  2. 2. 基本概念
  3. 3. 引用类型