js简介
JavaScript(Java脚本)是一种基于对象(Object)和事件驱动( Event Driven)并具有安全性能的脚本语言,使用JavaScript可以轻松的实现与HTML的交互操作,并且完成丰富的页面交互效果,它是通过嵌入或调入在标准的HTML语言中实现的,它的出现弥补了HTML的缺陷,是java与HTML折衷的选择。
基于对象:
指的是程序的内部已经为用户提供好了若干个对象,用户直接使用这些对象即可。
面向对象:
java属于面向对象的语言,面向对象是指用户自己定义类,对象需要用户自己产生。
java与JavaScript的关系:
没有关系。
变量
变量是存储数据信息的容器。
比如:x=2;y=3;z=x+y;
这些字母就称为JavaScript的变量,变量可用于存放值(比如 x=2)和表达式(比如 z=x+y)。
一、变量的命名规则
变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, total)。
- 变量必须以字母开头
- 变量也能以 $ 和 _ 符号开头(不推荐)
- 变量名称对大小写敏感(y 和 Y 是不同的变量)
提示:JavaScript 语句和 JavaScript 变量都对大小写敏感。
二、声明(创建)变量
我们使用 var 关键词来声明变量:
关键字 变量名称;(关键字会变色)
var name;
三、给变量赋值
变量声明之后,该变量是空的(它没有值),如需向变量赋值,使用等号。
name="张三";
或者直接在声明变量的时候赋值
var name="张三";
例子:
var age; 声明变量
age="12"; 赋值
console.log(age); 使用变量,控制台输出结果
注意:未使用值来声明的变量,其值实际上是 undefined。
四、声明多个变量
可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可。
var name=":李四,age="30",sex="男";
五、全局变量
全局变量时整个代码中都可以调用的变量
未使用var关键字定义的变量都是全局变量
第一种方式:
text="你好";
没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量text。即使该语句是在一个function内,当该function被执行后test就是全局变量。
第二种方式:
var text;
var text=5;
需注意的是该句不能包含在function内,否则是局部变量。
六、局部变量
局部变量是指只能在本变量声明的函数内部调用
示例:
function myName{
var i="张二";
}
myName{};
七、案例 区别全局变量,局部变量
当全局变量跟局部变量重名时,局部变量的scope(域)会覆盖掉全局变量的scope,当离开局部变量的scope后,又重回到全局变量的scope
案例(一)
<script type="text/javascript">
var a = "Hello"; //全局变量
function test(){
var a; //局部变量
alert(a); //未赋值
a = "World";
alert(a);
}
</script>
输出结果 undefined World
案例(二)
<script type="text/javascript">
var a = "Hello";
function test(){
alert(a);
a = "World"; //全局变量
alert(a);
}
</script>
输出结果 hello Word
案例(三)
Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域
<script>
var a="1";
function test(){
alert(a); //a为undefined! 这个a并不是全局变量,这是因为在function scope里已经声明(函数体倒数第2行)一个重名的局部变量,
//所以全局变量a被覆盖了,这说明了Javascript在执行前会对整个脚本文件的定义部分做完整分析,所以在函数test()执行前,
//函数体中的变量a就被指向内部的局部变量.而不是指向外部的全局变量. 但这时a只有声明,还没赋值,所以输出undefined。
var a = "2";
alert(a);
}
test();
alert(a); //a为1,这里并不在function scope内,a的值为全局变量的值
</script>
输出结果 undefined 2 1