JavaScript-基础(一)

来源:互联网 发布:照片变成素描的软件 编辑:程序博客网 时间:2024/05/22 07:42

1.导入方式

  • 第一种方法就是JavaScript代码可以直接嵌在网页的任何地方,不过通常我们都把JavaScript代码放到中。
  • 第二种方法是把JavaScript代码放到一个单独的.js文件,然后在HTML中通过引入这个文件。

2.基本语法、注释

基本语法
JavaScript的语法和Java语言类似,每个语句以;结束,语句块用{...}
注释
行注释:以//开头直到行末的字符被视为行注释,注释是给开发人员看到,JavaScript引擎会自动忽略。
块注释:用//把多行字符包裹起来,把一大“块”视为一个注释。

3.数据类型和变量

JavaScript中定义了以下几种数据类型:

  • Number
  • 字符串
  • 布尔值
  • null和undefined
  • 数组
  • 对象:JavaScript的对象是一组由键-值组成的无序集合

变量
变量名是大小写英文、数字、$_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,如ifwhile等。

比较运算符
……

4.字符串

JavaScript的字符串就是用''或者""括起来的字符表示

模板字符串(相当于python的格式化字符串)

例如:

var name = '小明';var age = 20;var message = '你好, ' + name + ', 你今年' + age + '岁了!';alert(message);

字符串操作

length
str.length 字符串长度

索引取值

str[0] 根据字符串索引取得元素(超出范围的索引不会报错,但一律返回undefined)

需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果:

var s = 'Test';s[0] = 'X';alert(s); // s仍然为'Test'

JavaScript为字符串提供了一些常用方法,注意,调用这些方法本身不会改变原有字符串的内容,而是返回一个新字符串:

toUpperCase

toUpperCase()把一个字符串全部变为大写:var s = 'Hello';s.toUpperCase(); // 返回'HELLO'

toLowerCase

toLowerCase()把一个字符串全部变为小写:var s = 'Hello';var lower = s.toLowerCase(); // 返回'hello'并赋值给变量lowerlower; // 'hello'

indexOf

indexOf()会搜索指定字符串出现的位置:var s = 'hello, world';s.indexOf('world'); // 返回7s.indexOf('World'); // 没有找到指定的子串,返回-1

substring

substring()返回指定索引区间的子串:var s = 'hello, world's.substring(0, 5); // 从索引0开始到5(不包括5),返回'hello's.substring(7); // 从索引7开始到结束,返回'world'

5.数组

JavaScript的Array可以包含任意数据类型,并通过索引来访问每个元素。

  • 要取得Array的长度,直接访问length属性。
  • 直接给Array的length赋一个新的值会导致Array大小的变化。
  • 如果通过索引赋值时,索引超过了范围,同样会引起Array大小的变化。

大多数其他编程语言不允许直接改变数组的大小,越界访问索引会报错。然而,JavaScript的Array却不会有任何错误。在编写代码时,不建议直接修改Array的大小,访问索引时要确保索引不会越界。

数组操作

indexOf

String类似,Array也可以通过indexOf()来搜索一个指定的元素的位置:var arr = [10, 20, '30', 'xyz'];arr.indexOf(10); // 元素10的索引为0

slice

slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Arrayvar arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

注意到slice()的起止参数包括开始索引,不包括结束索引。
如果不给slice()传递任何参数,它就会从头到尾截取所有元素。利用这一点,我们可以很容易地复制一个Array。

push和pop

push()Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉。

unshift和shift

如果要往Array的头部添加若干元素,使用unshift()方法,shift()方法则把Array的第一个元素删掉。

sort

sort()可以对当前Array进行排序,它会直接修改当前Array的元素位置,直接调用时,按照默认顺序排序。

reverse

reverse()把整个Array的元素给掉个个,也就是反转。

splice

splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素:

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];// 从索引2开始删除3个元素,然后再添加两个元素:arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']// 只删除,不添加:arr.splice(2, 2); // ['Google', 'Facebook']arr; // ['Microsoft', 'Apple', 'Oracle']// 只添加,不删除:arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']

concat

concat()方法把当前的Array和另一个Array连接起来,并返回一个新的Array
请注意,concat()方法并没有修改当前Array,而是返回了一个新的Array
实际上,concat()方法可以接收任意个元素和Array,并且自动把Array拆开,然后全部添加到新的Array里。

join
join()方法是一个非常实用的方法,它把当前Array的每个元素都用指定的字符串连接起来,然后返回连接后的字符串。

多维数组

如果数组的某个元素又是一个Array,则可以形成多维数组,例如:

var arr = [[1, 2, 3], [400, 500, 600], '-'];

6.对象

JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。
例如:

var xiaoming = {    name: '小明',    birth: 1990,    school: 'No.1 Middle School'

访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用”括起来。
例如:

var xiaohong = {    name: '小红',    'middle-school': 'No.1 Middle School'};

xiaohong的属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问:

xiaohong['middle-school']; // 'No.1 Middle School'xiaohong['name']; // '小红'xiaohong.name; // '小红'

JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。
JavaScript规定,访问不存在的属性不报错,而是返回undefined

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

var xiaoming = {    name: '小明'};xiaoming.age; // undefinedxiaoming.age = 18; // 新增一个age属性xiaoming.age; // 18delete xiaoming.age; // 删除age属性xiaoming.age; // undefineddelete xiaoming['name']; // 删除name属性xiaoming.name; // undefineddelete xiaoming.school; // 删除一个不存在的school属性也不会报错

如果我们要检测xiaoming是否拥有某一属性,可以用in操作符。

0 0
原创粉丝点击