JavaScript基础
一、概述
- 交互性
- 安全性
- 跨平台性
二、和Java的区别
- JS 是基于对象,Java 是面向对象。
- JS 只需解释就可以执行,
Java 需要先编译成字节码文件,再执行。 - JS 是弱类型,Java 是强类型。
三、JS 和 html 相结合的方式
- 将 JS 代码封装到 <script> 标签中
- 将 JS 代码封装到 JS 文件中,
并通过 <script> 中的 src 属性进行导入。
四、语法的通用体现
- 关键字:该种语言中被赋予了特殊含义的单词。
- 标识符:用于标识数据和表达式的符号。
通常可以理解为在程序中自定义的名称。
比如变量名,函数名。 - 注释:注解说明解释程序。用于调试程序。
- 变量:用于标识内存中的一片空间。
用于存储数据,该空间中的数据是可以变化的。
什么时候使用变量,当数据不确定的时候。 - 运算符:可以让数据进行运算的符号。
- 语句:用于对程序的运行流程进行控制的表达式。
- 函数:用于对功能代码进行封装,便于提高复用性。
- 数组:对多数据进行存储,便于操作。
就是传说中的容器。 - 对象:只要是基于对象的语言,或者是面向对象的语言,
就存在着对象的概念,对象就是一个封装体。
既可以封装数据,又可以封装函数。
五、变量
- JS 是弱类型语言
var 关键字可以定义多种类型语言 - JS 是非严谨语言
可以重复定义
可以没有 var 关键字
可以没有分号
六、运算符
- 算术运算符
+ - * / % ++ --
计算过程中自动转换类型:
整型转浮点型;
浮点型转整型;
字符串转整型;
布尔型转整型; - 赋值运算符
= += -= *= /= %= - 比较运算符
> >= < <= != == - 逻辑运算符
! && || - 位运算符
& | ^ << >> >>> - 三元运算符
? : - 小细节
undefined:未定义,其实它就是一个常量。
typeof:返回类型值,是一个字符串。
七、语句
- 判断结构
if
if...else
if...else if...else - 选择结构
switch(byte/short/int/char) case break - 循环结构
while
for - 其它结构
break
continue - 练习
九九乘法表
八、数组
- 数组用于存储更多的数据,是一个容器。
- 特点
1、长度是可变的
2、元素的类型是任意的 - JS中的数组定义的两种方式
使用[]来定义:
var arr = [];
var arr = [1,2,3,4].
使用JavaScript中的Array对象来完成的定义:
var arr = new Array(); // var arr = [];
var arr = new Array(3); // 数组定义并长度是3;
var arr = new Array(5,6,7) // 定义一个数组,元素是5,6,7.
九、函数
- 函数
函数格式:
function 函数名(参数列表) {
函数体;
return 返回值; // 也可省略
}
两个明确:
1、功能的结果
2、功能实现中的参与运算的未知的内容 - 函数的细节1
1、只要使用函数的名称就是对这个函数的调用;
2、函数中有一个数组在对传入的参数进行存储。这个数组就是arguments。 - 函数的细节2
函数加括号表示调用
函数不加括号就把函数对象的字符串表现形式打印出来 - 动态函数
定义:
var 函数名 = new Function(形参列表,函数体描述); - 匿名函数
定义:
var 函数名 = function(形式列表){函数体描述;} - 练习
最值、排序、查找、反转
十、全局变量和局部变量
- 全局变量
在脚本片段中定义的变量 - 局部变量
在函数中定义的变量
十一、常用对象
- Object
obj = new Object([value]) - String
var str = new String("");
var str = "";
bold()
fondcolor
......
自定义方法
自定义trim(str)方法
原型属性:
String.prototype.trim = function(){}
练习:
将字符串变成一个字符数组
将字符串进行反转 - Array
基本功能:
concat(参数):参数为数组/元素,以元素格式添加。返回数组。
join(分隔符):数组所有元素按分隔符隔开并组成字符串返回。
pop():移除数组最后一个元素并返回该元素。
push(数组...):将数组加入数组作为元素,并返回数组的长度。
reverse():反转并返回数组。
shift():移除数组第一个元素并返回该元素。
slice(开始,[结束]):截取数组一段,注意:不越界。
soft():排序。
splice(删除开始,删除结束,新增元素...):删除和新增。
unshift(元素...):将元素插入数组头位置并返回数组。
练习:
用数组实现堆栈或者队列
求最大值、转字符串 - 日期对象
创建对象
var date = new Date();
方法
date.getFullYear();
date.getMonth()+1;
date.getDate(); // 日期
date.getDay(); // 周
日期对象和毫秒值的转换
date.getTime();
new Date(time);
date.setTime(time);
日期对象和字符串转换
getLocaleString();
getLocaleDateString();
new Date(Date.parse(str_date); // 日月年 - with 语句
with(对象) {
在该区域中可以直接使用指定的对象的内容。
不需要写 对象.
} - Math
ceil(xx);
floor(xx);
round(xx);
pow(m,n); - 进制转换
将指定进制格式的字符串转成十进制
parseInt("str", 2/8/16)
将十进制转成其它进制,使用数字对象完成。
number.toString(2/8/16) - for in
for(变量 in 对象)
变量是角标 - 自定义对象
一
var obj = new Object();
obj.name = "name";
obj.age = age;
obj.show = new function() {
alert("name:" + this.name + ",age:" + this.age);
}
二、
fucntion Person(name, age) {
this.name = name;
this.age = age;
this.setNmae = function(name) {
this.name = name;
}
this.getName = function() {
return this.name;
}
}
三
var obj = {
"name":"name","age":age,
"show":function() {
alert("name:" + this.name + ",age:" + this.age);
}
}