javascript简要概述(一)
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。大家可以在浏览器中直接运行,无需下载其他的编译器。对于懒得下载编译器的同学来说特别的友好,只要有浏览器就可以。ps:javascript和java没有半毛钱关系。
在前端中,主要包含html,css和javascript三部分,html负责画出网页框架,css负责网页样式,而Javascrip负责让网页动起来。
在html中,一般javascript写在标签中。
在<script src="xxxx.js"></script>
//这里xxxx为js文件名
javascript 变量
javascript和其他语言一样,都有全局变量和局部变量,在javascript中定义局部变量值前面加上var,以此来表示是局部变量,否则即认为是全局变量。
var i=1;
//这里i 表示局部变量
a=1
//a 为全局变量
javascript定义函数
在javascript中,定义函数的语法为function func(){}
具体分为普通函数,匿名函数和自执行函数
普通函数
function fun(){
var i=1;
console.log(i)
}
//其中fun为函数名,函数体写在{}中
匿名函数
function(){}
var ma=function(){
console.log("11");
}
函数没有名字,可以通过var xxx=function(){函数体},xxx()调用函数。或者可以通过绑定事件来调用。
自执行函数
(function (){
console.log("123");})()
函数内部执行自身。通过()包裹住匿名函数,随后加()执行,可以看做是普通函数和匿名函数的结合。
变量作用域
js变量作用域,可以理解为这四句话。
1、与python相似,js作用域以函数作为作用域。例如:
function foo(){
var i=21;
}
其中i=21只在foo这个函数之间有作用域,在函数内,都是作用域。
2. 函数的作用域在函数未被调用之前已经创建。
function foo(){
var i=21;
}
函数foo的作用域在,在函数调用之前,已经创建,换句话说,就是函数创建完成后即已经创建完作用域。
3 函数的作用域的存在作用域链,并且作用域链也是在函数创建完成之后及创建完成。
x=123
function fun(){
var x=456;
function ff(){
var x=678;
console.log(x);
}
ff();
}
此时已经形成一个作用域链,即但函数fun()执行时,在函数ff()里,console.log(x)会打印678,如果将var x=678注释掉,函数会打印456,将var x=456注释掉,会打印123 。隐隐之中貌似形成一条链。
4 函数内部局部变量提前声明
function dun(){
console.log(xxx);
var xxx=123;
}
此时函数的输出结果为undefined,因为js解释器会自动检测函数中的局部变量,随后生成但不赋值。程序可以运行不会报错。
但是下列代码运行会报错
function dun(){
console.log(xxx);
}