JavaScript知识(二)

时间:2022-04-04 15:31:09

你要保守你心,胜过保守一切,因为一生的果效,是由心发出的。————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);

判断是否为数字(用IsNaN())

var num1 = "Hello";
alert(isNaN(num1));

昨天由于时间的关系,没有写完,所以这是补的昨天的博客总结,今天晚上在继续吧!加油!O(∩_∩)O...