你要保守你心,胜过保守一切,因为一生的果效,是由心发出的。————O(∩_∩)O...
...O(∩_∩)O...老师因有事下午没来上课,今天就只把中午讲的知识总结一下。由于昨天只是讲了JavaScript的一些基础入门知识点,所以今天就详细地总结一下Javascript的基础。
Javascript语言组成:
ECMAScript:描述了该语言的语法和基本对象。
DOM(Document Object Model):文档对象模型,描述处理网页内容的方法和接口。
BOM(Browser Object Model) :浏览器对象模型描述与浏览器进行交互的方法和接口。
Javascript语言特点:
1.是一种解释性脚本语言(代码不进行预编译)。
2.主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
3.可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
4.跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
Javascript数据类型
1.命名规则(和C#基本一样)
只能由字母、数字、$和下划线组成,并且第一个字符必须是字母或下划线。
区分大小写,不区分双引号和单引号。
不能使用关键字作为变量名。
Javascript脚本语言中只提供了6种类型:
- Undefined 未被定义类型
- Boolean 布尔类型
- String 字符串类型
- Number 数字类型
- Object 引用类型
- Function 方法类型
注:在使用变量之前,必须先进行变量的声明和定义,声明变量使用关键字var,可以同时声明多个变量
2.运算符(和C#基本一样)
Javascript语言的运算符主要分为:算数运算符、比较运算符、逻辑运算符。
算术运算符包括:+、-、*、/、%、++、--
比较运算符包括:>、<、==、>=、!=
逻辑运算符包括:||(或)、&&(和)、!(非)
注:“=”表示赋值 ““==”表示两边比较的值,"==="表示两边的值必须是同一类型
3.程序结构(和C#基本一样)
在Javascript脚本语言中,只提供了两种结构:条件结构(If、Switch-Case)、循环结构(For、While、do-while)
查看类型
- 当text=0时,打印出Number;当为空字符串时打印出string,为null打印出object
var text = 0; alert(typeof text)
类型转换(JS中可以把任意类型转换为Boolean类型,数字类型除了0之外都是true,反之是false)
- 如果不赋值或赋值null或赋值undefined,则都是打印出的true,
var u alert(u == undefined);
- 字符串转布尔类型,字符串非空时返回True,否则返回False
var s = "hello"; var b = Boolean(s); alert(b);
- 空值转换数字类型(Number())
var b = null; alert(Number(b));
- 转换浮点类型(ParseFloat()、ParseInt()转换整数类型)
var s = "123.567"; alert(parseFloat(s));
- 凡是和字符串相连的都将转换为字符串
var name = ‘Join‘; var num = 123; alert( typeof (name+num));
- 任意类型都可以转字符串(tostring())
toLocaleString()转本地语言 tostring(2)转为二进制
var b = true; alert(b.toString()); alert(name.toLocaleString());
- function方法
任何方法都以function开头。可以在方法里用return返回,并在方法外接收。
function SayHi(name, message) { alert("Hello"+name+"mesg:"+message); } SayHi("Rocky", "123");
调用方法时,参数要和方法体里一一相对。
function howManyArgs() { alert(arguments[0]+arguments[1]+arguments[2]); } howManyArgs(1,2,3);
注:在Javascript中没有方法重载的概念,名字相同,参数不同,也将会打印出最后一个方法。
程序结构中没有块级作用域(可以在循环语句外调用i)
for (var i = 0; i < 10; i++) { } alert(i);
数组类型
定义数组的几种方法
1. var 数组名=new Array(具体长度)可以用for遍历出来,也可以直接alert(数组名)打印出来。
var colors = new Array(3);//设置数组的长度。 colors[0] = "red"; colors[1] = "blue"; colors[2] = "yellow"; for (var i = 0; i <colors. length; i++)//遍历出来 { alert(colors[i]); }
2.var 数组名=new Array(值1,值2...值n)
var colors1 = new Array("red", "blue", "yellow"); for (var i = 0; i < colors1.length; i++) { alert(colors[i]); }
3.可以简写:var 数组名=[值1,值2...值n]。
push(后进后出,追加到数组后面)
pop(从数组的末尾移除最后一项)
shift(取得数组中的第一项)
var colo = ["red", "blue", "yellow"]; colo.push("张三", "李四"); colo.pop(); alert(colo.shift()); alert(colo);
substring()第二个参数指定的是字符串最后一个字符后面的位置
substr(n,m)n开始位置,m截取长度
var str = "Woshiunib"; alert(str.substring(1, 3)); alert(str.substr(1, 3));
排序:
升序(sort())
var values = [1, 3, 2, -9, 5, 11]; function compare(v1, v2) { if (v1 < v2) { return -1; } else if (v1 > v2) { return 1; } else { return 0; } } values.sort(compare); alert(values);
降序:在方法体里取反。
var values = [1, 3, 2, -9, 5, 11]; function compare(v1, v2) { if (v1 < v2) { return 1; } else if (v1 > v2) { return -1; } else { return 0; } } values.sort(compare); alert(values);
倒序:(reverse())
var values = [1, 3, 2, -9, 5, 11]; function compare(v1, v2) { if (v1 < v2) { return 1; } else if (v1 > v2) { return -1; } else { return 0; } } values.reverse(values); alert(values);
昨天由于时间的关系,没有写完,所以这是补的昨天的博客总结,今天晚上在继续吧!加油!O(∩_∩)O...
判断是否为数字(用IsNaN())
var num1 = "Hello"; alert(isNaN(num1));