您现在的位置是:首页 > 技术学习 > javascript 网站首页 技术学习 javascript
javascript基础
- 技术学习
- 2019-03-23
- 294已阅读
- 7
简介
本篇介绍js的基础知识、基本语法、及简单函数。
本篇介绍js的基础知识、基本语法、及简单函数。
1. JS基础知识
js由网景+sun共同开发,js是单线程的。
基本特点:
- 脚本语言:js是一种解释性的脚本语言,c、c++等语言先编译后执行,而js可以直接执行。
- 基于对象:js是一种基于对象的脚本语言,可创建对象,也可使用现有对象。
- 简单:js采用弱类型的变量类型。
- 跨平台:js值依赖浏览器,和操作系统无关。
- 嵌入式:
JS使用场景
- 嵌入动态文本于html页面,对浏览器时间做出响应。
- 读写html元素。
- 在数据被提交服务器之前验证数据。
- 检测访客的浏览器信息。
- 控制cookies,包括创建和修改。
- 基于node.js技术进行服务器端编程。
JS的组成:
- ECMAscript(ECMA) : 解释器。
- DOM : 在js中就是document object model 文档 对象 模型
- BOM : browser object model 浏览器 对象 模型。
三者兼容性:
ECMA:提供功能单一简单,几乎不存在什么兼容问题。
DOM: 兼容性一般,兼容性一般可解决。DOM操作最常用。
BOM:几乎完全不兼容。
2. JS的使用
- js代码写在script标签里面之间。
<script type="text/javascript">
/* js代码 */
</script>
- js也可直接写在.js文件里面,然后在将该文件引入html里面。
<script src="js/myscript.js" type="text/javascript"></script>
- js可以放在html里面任何位置,但是解析顺序从前到后。
- js由js语句组成(基本格式),一个语句结束通常加“;”。
- 注释:
单行注释: //
多行注释:/* 注释代码 */ - 定义变量方法:var 变量名。
取名规则:- 变量名必须使用字母或下划线_或美元符$开始。
- 不能用js关键词或js保留字。
- js大小写敏感,要区分大小写。
- 变量要先声明再赋值,可重复赋值。
var myArr = ["a", "b", "c"];
myArr = ["1", "2", "3", "4"];
- 定义函数方法:
function 函数名 () { /* 函数代码 */ };
function myFn() {
alert("我的函数");
}
// 函数定义好后不会自动执行,需要使用时在所需位置调用,写调用函数。比如:
document.body.onclick = function () {
myFn();
}; // 这种没有名字的函数称为匿名函数。
// 或者:
document.body.onclick = myFn;
3. 简单的函数
3-1 弹框函数
- 警告弹框:
alert("弹框内容");
弹窗包含一个确定按钮。如下:
- 确认弹框:
confirm("确认弹框上显示的内容");
弹框包含提示信息和确定/取消按钮,确定返回1,取消返回0;如下:
- 输入对话框:
prompt("请输入你的名字","123");
prompt有两个参数,前面是提示的话,后面是当对话框出来后,在对话框里的默认值。点确定返回框内输入内容。取消返回null;如下:
3-2 输出内容
document.write("要输出的内容");
将内容输出到页面。console.log("要输出内容");
将内容输出到控制台,常用来调试。
注:
document.write() 尽量不要写在window.onload = function(){}里面,如果写在里面,新写的内容会把页面原本内容给覆盖掉。因为window.onload时候,文档流已经关闭,这时候调用document方法会重新开一个文档流,这时候往里面写内容,是在新文档流里面写,写完之后新文档流会替换掉旧得文档流,所以会看到页面原本内容被清空,只剩下write方法里的内容展示在页面中。
3-3 常见流程控制函数
3-3-1 判断
if (/*条件1*/) {
/* 要执行的代码1 */
} else if (/*条件1*/) {
/* 要执行的代码2 */
} else {
/* 要执行的代码3 */
}
// else if 可写多个(多重判断),也可不写(2选1的判断:if...else...)
3-3-2 三元运算
条件 ? 为真时 : 为假时
var a = 4;
a <= 5 ? alert(5) : alert(0);
// 这是2选一的一种判断。
// 判断a是否小于等于5,如果是,那执行 ?后的代码即 alert(5);
// 如果不是,那执行 : 后的代码即 alert(0);
3-3-3 多种选择switch
switch (num){
case 1: //当num值为1时执行下面的代码
alert("num的值为1");
break;
case 2: //当num值为2时执行下面的代码
alert("num的值为1");
break;
// .....
default: //当num值为其他情况时执行下面的代码
alert("num的值为其他");
}
3-3-4 for循环
// 强制按循环条件循环
for (/*初始化变量; 循环条件;循环迭代*/){
// 循环代码;
}
for (var i = 0;i < 5;i++){
console.log(i);
}
// 上述代码输出分别为:0,1,2,3,4。
// 当i=0时,执行里面代码,执行完毕,i++,i=1;
// 然后再执行里面代码...依次执行直到i的值不小于5时停止。
3-3-5 for in 循环
// 循环循环对象的可枚举属性(和for循环有点不同)
for(/* var k/i in obj/arr */) {/* 循环代码; */};
// 例:
var obj = {
'a' : 'aaa',
'b' : 'bbb',
'c' : 'ccc'
};
for(var k in obj) { // k为定义的变量,用于在obj中循环
console.log(k); // a,b,c(定义的变量k代表键值)
console.log(obj[k]); // aaa,bbb,ccc
};
var arr = ['a','b','c'];
for(var i in arr) {
console.log(i); // 0,1,2 (数组中定义的的变量i代表下标)
console.log(arr[i]); // a,b,c
}
// 注:for循环和for in循环的区别:
var a = [];
a[0] = '00';
a[2] = '22';
a[4] = '44';
for(var i = 0; i < a.length; i++) {
console.log(a[i]); // 00,undefined,22,undefined,44
// for循环强制按条件循环,没值得也会循环。
};
for(var k in a) {
console.log(a[k]); // 00,22,44
// for in循环只循环可枚举的值,undefined没列举。
};
3-3-6 退出循环break
for(){
if(/* 特殊条件 */){
alert(1);
break; //中断停止整个循环
alert(2);
}
// 循环代码;
}
// 当遇到特殊条件时,停止整个循环,
// break后面的代码将不再被执行,同时整个循环也不再执行。上述代码会弹出1,不会弹出2。
3-3-7 继续循环continue
for(){
if(/* 特殊条件 */){
alert(3);
continue; // 中断本次循环,但不会阻止整个循环进行。
alert(4);
}
// 循环代码;
}
// 当遇到特殊条件时当前循环执行特殊条件里面的代码。
// 但是在这个特殊条件的代码中continue之后的部分不会执行。但是整个循环仍会继续进行。上述代码会弹出3,不会弹出4。
// 例:
for(var i = 0; i < 10; i++){
if(i == 5){
alert(5);
continue;
alert("五");
}
if(i == 6){
alert(6);
break;
alert("六");
}
if(i==7){
alert(7);
continue;
alert("七");
}
}
// 上述代码会弹出5,6。continue不中断整个循环,所以6会弹出来。
// 因为continue、break之后代码不执行,所以五、六不会弹出,
// 而且break终止整个循环,所以7和七也不会弹出。
3-3-8 反反复复while
while (/* 条件 */){
// 需要执行的代码
}
// 只要条件为true,就一直执行里面的代码。
var i = 0;
while (i < 5){ // i自增1,但是只要i<5就输出一次i;
console.log(i);
i++;
} // 结果为输出0,1,2,3,4
3-3-9 来来回回 do…while…
do{
// 需要执行的代码
} while (/* 条件 */);
// 先执行代码,然后判断条件是否为真,如果为真,那么再去循环执行do里面的代码。
var i = 0;
do{
console.log(i);
i++;
} while (i < 0);
// 虽然 i < 0 为 false 但是结果仍然会输出0;
上一篇:前端CSS学习 - 3