JavaScript基础语法
JavaScript简介:
JavaScript 是⼀种具有⾯向对象能⼒的、解释型的程序设计语⾔。更具体⼀点,它是基于对象和事件
驱动并具有相对安全性的客户端脚本语⾔。它的主要⽬的是,验证发往服务器端的数据、增加 Web 互
动、加强⽤户体验度等。
JavaScript的组成:
- ECMASCript(基础语法)
- JavaScript的核⼼语法ECMAScript描述了该语⾔的语法和基本对象
- DOM(文档对象模型)
- ⽂档对象模型(DOM)—— 描述了处理⽹⻚内容的⽅法和接⼝
- BOM(浏览器对象模型)
- 浏览器对象模型(BOM)——描述了与浏览器进行交互的方法和接口
基本用法
JS需要和HTML一起谁用才有效果 可以使用直接或间接方式将JS嵌入到HTML页面中
- 行内JS:写在标签内部的js代码
<button onclick="alert('you clicked hered!!!')">click here</button>
- 内部JS:定义在script标签中的JS代码
<script type="text/javascript" charset="utf-8">
alert('this is inner js code')
</scrip
- 外部JS:单独的js文件,在HTML中通过script标签引入
外部js文件:
alert('this is a outter js document');
HTML文件中:
<!-- 在需要使⽤js的html⻚⾯中引⼊ -->
<script src="js/hello.js" type="text/javascript" charset="utf-8"></script>
基础语法
注释符
单行注释://
多行注释:/* */
兼容html注释方式:<!-- -->
变量的声明
由于JavaScrip是一门弱类型语言,在声明变量时不需要指明数据类型,直接用var修饰符进行声明
//先声明,再赋值
var a ;
a=10;
//声明同时赋值
var a=10;
变量的注意点
- 若只声明而没赋值,则该变量的值为undefined
- 变量要有定义才能使用,如果未声明就使用,会报错
- 可以再同一条var命令中同时声明多个变量
- 若使用var重新声明一个已存在的变量是无效的.
- 若使用var重新声明一个已存在的变量并赋值.则将覆盖掉前面的值
- 由于js是弱类型语言,变量的类型是没有限制的,可以赋予各种类型的值
变量提升
js的工作方式是先解析代码.,获取所有被声明的变量,然后再按顺序从上到下执行.如果运行到输出语句时,变量没有赋值,那么变量使用默认值undefined.
数据类型:
- undefined 表示"无"的原始值 表示值不存在
- null 表示一个空对象引用
- 布尔类型 用作判断
- 数值型 整形与浮点型
- 字符串 使用
''
或""
引起来 使用+
进行字符串拼接 - 对象 是一组数据和功能的集合
类型转换
函数转换
-
parselnt ()
-
在转换之前,首先会分析该字符串,判断位置未0处的字符,判断是否为有效数组,如不是,则返回NaN,不再继续,如果是则继续,直到找到非字符
-
parseInt("1234blue"); // returns 1234 parseInt("22.5"); // returns 22 parseInt("blue"); // returns NaN
-
-
parseFIoat()
- 与parseInt处理方式相似,从位置0处查看字符,征集到招待第一个非有效字符位置,然后把该字符之前的字符串转换成数字, 对于此方法而言,第一个出现的小数点是有效字符.如果出现第二个小数点,将视作无效.
显示转换
所有对象都提供了toString函数将内容转换成字符串形式,其中Number提供了toString函数可以将数字转换成字符串
Number还提供了toFixed()函数将小数点后指定位数将数字转为字符串,四舍五入
数组
数组的长度可以通过length属性来获取,并且可以任意更改
数组中每一个元素都可以被访问和修改,无所谓越界
数组的遍历:
提供了三个方法遍历
普通for循环
for(var i=0;i<数组.lenth;i++){
console.log(数组[i]);
}
for…in循环
for(var 下标(名称任意) in 数组名){
数组名[下标]是获取元素
} // 下标(名称任意)
如:
for(var idx in arr){
console.log(arr[idx]);
}
forEach循环
数组名.forEach(function(element,index){
// element(名称任意):元素,index(名称任意):下标
})
如:
arr.forEach(function(elem,idx){
console.log(idx + "-->" + elem);
});
数组提供的方法:
push 添加元素到最后
unshift 添加元素到最前
pop 删除最后⼀项
shift 删除第⼀项
reverse 数组翻转
join 数组转成字符串
indexOf 数组元素索引
slice 截取(切⽚)数组,原数组不发⽣变化
splice 剪接数组,原数组变化,可以实现前后删除效果
concat 数组合并
函数
函数,即方法.就是一段预先设置的功能代码块,可以反复调用,根据输入参数的不同,返回不同的值.函数也是对象
函数的定义:
有三种函数定义的方式:
函数声明语句,
该方法定义的函数具有声明提升的效果
函数定义表达式,
可以省略函数名
Function构造函数
接受任意数量的参数,但最后一个始终被视为是函数体,而前面的参数则列举处了新函数的参数
对象
对象是js语言的核心概念,也是最重要的数据类型.js所有的数据都可以被视作对象
对象就是一种无序的数据结合,又若干个键值对构成
对象的创建
- 字面量形式创建
var 对象名 = {};//创建⼀个空的对象
var 对象名 = {键:值,键2:值2,...}
var obj = {
'name' : 'hello',
age : 12,
sayHello : function () {
console.log("我是对象中的⽅法");
},
courses : {
javase : 4,
javascript : 3
},
isLike : true,
members : [
{name : "⼩红",age : 20},
{name : "⼩绿",age : 22},
{name : "⼩蓝",age : 27},
{name : "⼩⻩"}
]
};
- 通过new Object创建
var 对象名 = new Object(); // 创建⼀个空的对象
var obj = new Object();
obj.name = 'zs';
obj.age = 18;
console.log(obj);
- 通过Object对象的create方法创建
var 对象名 = Object.create(null);
var obj = Object.create(null);
obj.name = 'ls';
obj.gender = true
console.log(obj);
var objn = Object.create(obj);
objn.age = 18;
console.log(objn);
console.log(objn.gender)
对象的序列化与反序列化
JSON.stringify()
序列化对象,将对象转为字符串
JSON.parse()
反序列化对象,将一个JSON字符串转换成对象