1.Javascript变量
变量是用于存储数据的容器
在程序运行过程中随时改变变量中存储的数据
通过var关键字声明JavaScript变量
格式:var 变量名称;
变量声明之后,变量是空的,未定义它的值
要给变量存储数据就需要给使用“=”给变量赋值
格式:var 变量名称=数据;
var test1;
test1=22;
也可在声明变量是给变量赋值
var test2=10;
一条语句,多个变量,以语句var开头,并使用逗号分隔开变量
// 一条语句,多个变量,以语句var开头,并使用逗号分隔开变量
var test3, test4, test5;
// 逐条赋值
test3 = 110;
test4 = 120;
test5 = 130;
一条语句,多个变量,在定义变量时可赋值
// 一条语句,多个变量,在定义变量时可赋值
var test6 = "国家",
test7 = "bianlinag",
test8 = 22;
alert(test6 + "," + test7 + "," + test8)
变量名称的命名
- 可以数字,字母,“$”,“_”,不能以数值开头
- “$”,“_”,可作为开头,但不推荐使用
- 变量名称对大小写敏感(y和Y是不同的变量)
- 不能使用关键字--关键字是javascript语言为一个单词赋予特殊的含义
- 不建议用中文命名变量名称
- 全字母小写,如有多个单词组成可以用$ , _ ,连接
2、数据类型
数据类型实际上是用来决定所定义的变量将来所能进行那些操作。
JavaScript中的数据类型有2大类:
值类型(基本类型)和引用数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol(是 ES6 引入了一种新的原始数据类型,表示独一无二的值)
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
值类型(基本类型)
2.1字符串string
字符串是存储字符的变量(如 “hello”)
字符串可以是引号[“ ”/’ ’]中的任意文本
<script>
// string--字符串存储字符的变量
// 引号可以是以下任意形式
var str1 = "hello";
var str2 = 'hello';
var str3 = "hello'beijing'";
var str4 = 'hello"beijing" ';
alert(str4);
</script>
2.2数字number
只有一种数字类型
数字可以带小数点也可不带
var num1 = 3.1415926;
var num2 = 314;
极大或者极小的数字可以通过科学计数法来书写
var num3 = 159e3; //表示159000
var num4 = 159e-3; //表示0.159
2.3布尔Boolean
布尔只有两个值、布尔常用在条件判断中
true:真值
False:假值
var bo1 = true;
var bo2 = false;
2.4空null
在javascript中null表示什么都没有、表示一个空对象引用
null是只有一个值得特殊类型
var nu1 = null;
2.5未定义undefined
在javascript中underfined表示未赋值、未定义
var test6; //未给test6赋值
alert(test6);
2.6对象object
对象由花括号”{}”表示
{}内出现两种元素
- 属性--属性名称:属性值(属性与属性之间/属性与方法之用逗号“,”隔开)
- 方法--方法名称:function(){},(方法与方法之间/方法与属性之间用逗号“,”隔开)
var test1 = {
name: "wangxiao",
age: "22",
city: "北京",
fangfa: function() {
alert("我是test1对象的一个方法")
}
}
对象中的属性访问
1.得到对象中的属性值
格式:对象名称.属性名称/对象名称[“属性名称”];
alert(test1.age);
alert(test1["name"])
- 修改对象中的属性值
格式:对象名称.属性名称=新值;
test1.age = 36;
alert(test1.age)
- 得到对象中的方法
格式:对象名称.方法名称();
test1.fangfa();
2.7数组array
数组--使用一个变量来保存一组数据
var arr1 = { //变量名称为arr1的数组
name: "wangxiao",
age: "22",
city: "北京"
}
创建数组
- 先创建后赋值
向数组中赋值,数组名称[下标]=数据值;
[]---数组的标志
下标---数据值在数组中的位置,从0开始
var arr2 = new Array();
arr2[0] = "wangxiao";
arr2[1] = "22";
arr2[2] = "北京";
- 创建+赋值
var 数组名称 = new Array("数据值1", "数据值2", "数据值3");
var arr3 = new Array("wnagxiao", "22", "北京")
var 数组名称 = ["数据值1", "数据值2", "数据值3"];
var arr4 = ["wangxiao", "22", "北京"]
取出数组中的数据值
数组名称[下标]
alert(arr3[2]);
alert(arr3[2] + "," + arr3[0] + "," + arr3[1]);
alert(arr4[1]);
alert(arr4[0] + "," + arr4[1] + "," + arr4[2]);
数组的length属性
表示得到数组中的元素的个数
alert(arr4.length)
2.8函数function
函数function--实现某一功能的代码块
格式:function 函数名称(参数列表){函数体[return xxx]}
function—声明函数的关键词
(参数列表)
参数—接受函数之外的数据进入本函数中进行运算
()表示无参数
(变量名称)表示有一个参数时
(变量名称,变量名称,变量名称,)表示有三个参数,用逗号”,”隔开各个变量名称
{}表示函数体包含的是实现具体功能的代码
[return xxx]表示函数的执行结果,有执行结果就写在最后一行,无执行结果则不写
举例:
没有参数,没有返回值的函数
// 1.没有参数,没有返回值的函数
function test2() {
alert("没有参数,没有返回值的函数");
}
- 没有参数,没有返回值的函数
// 2.有一个参数,没有返回值的函数,参数为str
function test3(str1) {
alert("有一个参数,没有返回值的函数");
}
- 有多个参数,没有返回值的函数
// 3.有多个参数,没有返回值的函数,参数为str function test4(str1, str2, str3) { alert("有多个参数,没有返回值的函数"); }
- 有多个参数,没有返回值的函数
// 3.有多个参数,没有返回值的函数,参数为str function test4(str1, str2, str3) { alert("有多个参数,没有返回值的函数"); }
- 没有参数,有返回值的函数
// 4.没有参数,有返回值的函数 function test5() { alert("没有参数,有返回值的函数"); return "返回值" }
- 有参数,有返回值的函数
// 5.有参数,有返回值的函数,参数为str function test6(str1) { alert("有参数,有返回值的函数"); return "返回值" }
函数的调用
在需要使用函数的地方直接写:函数名称([参数列表]);
1.调用无参数,无返回值的函数
// 1.调用无参数,无返回值的函数 test2();
2.调用有无参数,无返回值的函数
// 2.调用有参数,无返回值的函数 test3("wangxiao", 22, "beijing");
- 调用没有参数,有返回值的函数,接收函数的返回值结果
// 3.调用没有参数,有返回值的函数,接收函数的返回值结果 var res1 = test5(); alert(res1);
- 调用有参数,有返回值的函数,接收函数的返回值结果
// 4.调用有参数,有返回值的函数,接收函数的返回值结果 var res2 = test6("wangxiao", 22, "beijing"); alert(res2)
函数名称命名规则
1.可以是数字,字母,$ , _ ,不能用数字开头
2.$ , _ 可以作为开头,单不推荐使用
3.函数名称对大小写敏感
4.不能使用关键字
关键字是javascript语言为一个单词赋予特殊的含义
5.不要用中文
6.全字母小写,如果有多个单词组成可以用$ , _ ,连接
3.变量与函数的关系
3.1局部变量
在javascript函数内部声明的变量是局部变量
只能在函数内部访问它—该变量的作用域就是局部的
function test1() { var num1 = 66; //局部变量 alert(num1); }
3.2全局变量
全局变量是在函数外声明的变量,网页上的所有脚本和函数够可以访问
var str1 = "hello"; //函数外声明的变量 // 在函数内访问它 function test2() { alert(str1) } test2();
3.3JavaScript 变量的生存期
局部变量会在函数运行以后被删除
全局变量会在网页关闭以后被删除
3.4向未声明的 JavaScript 变量分配值
如果把值赋给未声明的变量,该变量将会自动作为window的一个属性
num2 = "beijing"; //变量为声明,此时他就是window对象的一个属性 alert(window.num2); alert(num2); //都能访问到变量
4.JavaScript 作用域
作用域是指已定义变量的有效范围
局部变量:只能在函数内部访问
全局变量:网页上的所有脚本和函数够可以访问
5.JavaScript 运算符
5.1JavaScript 算术运算符 [+ - * / % ++ --]
运算符 | 描述 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模(余数) |
++ | 递加 |
-- | 递减 |
+ 运算符
1.用于把文本值或字符串变量加起来(连接起来)
var test1 = "hello";
var test2 = "beijing";
alert(test1 + "," + test2);
2.用于两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串.
// 2.用于两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串
var num1 = 100;
var num2 = 50;
alert(num1 + num2);
alert(test2 + num2);
// ++表示自动加一
//变量++表示先用后加
alert(num1++) //先用--100
alert(num1) // 二次使用变成101
//++变量表示先加后用
alert(++num1) //先加--101
alert(num1) // 二次使用变成101
// --表示自动减一
//变量--表示先用后减
alert(num2--) //先用--50
alert(num2) // 二次使用变成49
//--变量表示先减后用
alert(--num2) //先减--49
alert(num2) // 二次使用变成49
5.2.JavaScript比较运算符 [> < >= <= == === !=]
比较运算符在逻辑语句中使用,以测定变量或值是否相等。
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动.后面内容中介绍。
==判断数据值是否相等
===判断数据值和数据类型是否相等
运算符 | 描述 |
== | 等于 |
=== | 等值等型 |
!= | 不相等 |
!== | 不等值或不等型 |
> | 大于 |
< | 小于 |
>= | 大于或等于 |
<= | 小于或等于 |
? | 三元运算符 |
5.3.JavaScrip逻辑运算符 [|| && !]
逻辑运算符用于测定变量或值之间的逻辑。
给定 x=6 以及 y=3,下表解释了逻辑运算符:
运算符 | 描述 | 例子 |
&& | and | (x < 10 && y > 1) 为 true |
|| | or | (x==5 || y==5) 为 false |
! | not |
|
&& 表示与--- 左右都为true是结果为true,其他都是false
// && 表示与--- 左右都为true是结果为true,其他都是false
alert(true && false); //结果为false
alert(false && true); //结果为false
alert(true && true); //结果为true
alert(false && false); //结果为false
||表示或--左右都为false结果为false,其他都为true
// ||表示或--左右都为false结果为false,其他都为true
alert(true || false); //结果为true
alert(false || true); //结果为true
alert(true || true); //结果为true
alert(false || false); //结果为false
NOT 运算符(!)对于 false 语句返回 true,对于 true 语句返回 false
// NOT 运算符(!)对于 false 语句返回 true,对于 true 语句返回 false
var num1 = 100;
var num2 = 10;
!(num1 > num2) //结果为false
!(num1 < num2) //结果为turn
参数运算的数据都是boolean,运算结果是boolean值
true 正确 / false错误
JavaScrip条件运算符
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
格式: var res=(表达式)?value1:value2;
判断表达式的结果 1. true -- value1数据值赋值给res
2. false -- value2数据值赋值给res
var test1 = (100 > 10) ? "大于" : "小于";
alert(test1); //大于
var test1 = (num2 > num1) ? "对" : "错";
alert(test1); //错
5.4.typeof 操作符
检测变量的数据类型
// typeof 操作符
// 检测变量的数据类型
var num3 = 15;
alert(typeof num3); //数据类型为number数字
var str1 = ("hello'beijing'");
alert(typeof str1) //数据类型为string字符串
var boo1 = true;
alert(typeof boo1) //数据类型为boolean布尔
var nu1 = null;
alert(typeof nu1) //数据类型为odject对象
var und1;
alert(typeof und1) //数据类型为undefined未赋值
var obj1 = {
city: "xian"
};
alert(typeof obj1) //数据类型为object对象
var arr1 = ["xian", "beijing"];
alert(typeof arr1) //数据类型为object对象
var fun = function test1() {
alert("函数");
};
alert(typeof fun); //数据类型为function函数