1.javascript变量
变量是用于存储信息的"容器"。
就像代数那样
x=5
y=6
z=x+y在代数中,我们使用字母(比如 x)来保存值(比如 5)。
通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。
在 JavaScript 中,这些字母被称为变量。
变量是用于存储信息的"容器"。
就像代数那样
x=5
y=6
z=x+y在代数中,我们使用字母(比如 x)来保存值(比如 5)。
通过上面的表达式 z=x+y,我们能够计算出 z 的值为 11。
在 JavaScript 中,这些字母被称为变量。
一条语句,多个变量
我们也可以在一条语句中声明很多变量。该语句以 var 开头,并使用逗号分隔变量即可。
var lastname="Doe", age=30, job="carpenter";
声明也可横跨多行:
var lastname="Doe",
age=30,
job="carpenter";一条语句中声明的多个变量不可以同时赋同一个值:
var x,y,z=1;
运行结果:x,y 为 undefined, z 为 1。
在计算机程序中,经常会声明无值的变量。未使用值来声明的变量,其值实际上是 undefined。
如果重新声明 JavaScript 变量,该变量的值不会丢失.
关于变量名称的命名
通常我们在创建或者是声明一个变量的时候,都会为这个变量指定一个名称,以方便之后使用。变量可以使用短名称(比如 x 和 y),也可以使用描述性更好的名称(比如 age, sum, totalvolume)。
1.变量必须以字母开头
2.变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)
3.变量名称对大小写敏感(y 和 Y 是不同的变量)
2.JavaScript 数据类型
数据类型实际上是用来决定所定义的变量将来所能进行那些操作。
JavaScript中的数据类型有2大类:值类型(基本类型)和引用数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型。
2.1 JavaScript 字符串
字符串是存储字符(比如 "hello")的变量。
字符串可以是引号中的任意文本。
您可以使用单引号或双引号。
var carname="Volvo XC60";
var carname='Volvo XC60';您可以在字符串中使用引号,只要不匹配包围字符串的引号即可。
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
2.2JavaScript 数字
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带。
var x1=34.00; //使用小数点来写
var x2=34; //不使用小数点来写极大或极小的数字可以通过科学(指数)计数法来书写。
var y=123e5; // 12300000
var z=123e-5; // 0.00123
2.3 JavaScript 布尔
布尔(逻辑)只能有两个值:true 或 false。布尔常用在条件判断中。
1.创建Boolean
1.1 var bool1 = true; // typeof bool === boolean
1.2 var bool2 = new Boolean(true)
//typeof bool2 == object
2 转换
boolean ==> object
var boolobj = new Boolean(bool1)
object ==> boolean
bool3 = boolobj.valueOf()
//typeof bool3 == boolean;
常见的隐式转换
只有六种情况Boolean(被转换的数据)的结果是false,其余全是true
0 数字0 ‘0’
NaN 数字NaN
"" 空字符串 “空格”
false 布尔值false
undefined undefined类型
null null类型
2.4null(空)
- 在 JavaScript 中 null 表示 "什么都没有"。
- null是一个只有一个值的特殊类型。表示一个空对象引用。
- 用 typeof 检测 null 返回是object。
- 你可以设置为 null 来清空对象。
2.5 undefined未定义
在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。
任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.
2.6null 与 undefined 的异同点是什么呢?
共同点:都是原始类型,保存在栈中变量本地。
不同点:
1. undefined——表示变量声明过但并未赋过值。它是所有未赋值变量默认值。
例如:var a; // a 自动被赋值为 undefined
2. null——表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用
例如:var emps = ['ss','nn'];
emps = null; // 释放指向数组的引用
3.JavaScript 对象
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔。空格和折行无关紧要。声明可横跨多行。
var student = {
sid : '1001',
name : '小明',
sex : "男",
age : 16
}
4.JavaScript 数组
数组 可以存储很多项,有顺序,很多项形成的一个集合体,这个集合就是 数组 Array。
数组的字面量[ ]。
获取数据的方法 通过索引/下标。
- 数组中的第一项索引是从0开始的。
- 数组中的索引都是整数。
数组中的存储类型可以不一致,但是不推荐。
数组的长度;数组中元素的个数。
- 获取数组的长度 变量名.length。
- 修改数组的内容 变量[索引] = ‘’。
- 给数组添加一项 变量[索引] = ‘’。
- 如果是跳跃式的添加那么默认值就是undefined。
4.1 如何创建数组?
1). new Array()
var arr1=new Array(); //空数组
var arr01=new Array(3); //创建指定初始存储空间的空数组
2). 通过“[]”表示数组
var arr2=[]; //空数组
4.2数组如何保存数据值?
1).通过下标逐个赋值
下标表示数据在数组中的位置,从0开始
var arr11=new Array(); //空数组
arr11[0]=1001;
arr11[1]="zhangsan";
arr11[2]=23;
var arr22=[];
arr22[0]=1004;
arr22[1]="zhaoliu";
arr22[2]=26;
2).创建时直接赋值
var arr12=new Array(1002,"lisi",24);
var arr13=[1003,"wangwu",25];
从数组中取出对应位置【下标】的数据
arr[ '下标' ]
5.JavaScript 函数
● 什么是JavaScript 函数
某个功能具体执行代码的集合--函数
函数也是一种数据类型 function也是一种数据类型。
- 可以通过 typeof 变量名
函数可以封装特定功能的代码,然后通过函数名重复使用。
函数的定义,函数体称为形参,调用函数时的参数称为实参。
function 函数名(参数1,参数2,...){ ----函数体---- }
函数不能自己运行,需要调用函数。
函数的返回数据需要变量进行接收,可以直接使用。
当函数中不写return的时候,return后面可以什么都不跟,返回的是 undefined, 只为结束这个函数。
arguments 可以再函数内部获取调用时函数传入的实参。获取的数据不是 数组。
当需要传入的参数个数不确定时可以通过argumets直接获取,然后通过数 组的形式进行操作。
函数分类 1.命名函数
function fn(){
}
2.函数表达式;匿名函数赋值
var fn = function (){
}
3.自调用函数 - 当函数书写完成之后自动调用。
(function( ){
})()
4.new Function(' ');
var fn = new Function('var name = "zhang";console.log(name)');
var fn = new Function('参数','参数','var name = "zhang";console.log(name)');
6.javascript对象
* 什么是对象?
描述一类具体事物的引用数据类型 -- 对象
* 为什么需要对象类型?
因为javascript中的数据类型,在使用的时候可能不够用,我们需要自己定义创建一种新的类型。
程序中的对象是对现实生活中的对象。
* js中的对象是无序属性的集合。
* 具有属性和方法。
* 函数和对象的区别
函数: 可以封装一段代码。
对象: 封装一组属性和方法。
* 访问对象属性 对象.属性名。方法名[‘属性名’]。
* 访问对象方法 对象.方法。
* 对象的创建方法:
Var 对象名 = {
}
var 对象名 = new Object();创建一个空对象
new Object 调用构造函数。
可以动态增加属性和方法。
当前方法中使用属性,需要this.指向当前对象。
7.JavaScript 作用域
7.1全局作用域
全局作用域:在script或者独立的js文件中,在全局作用域中全局变量。在任何位置都可以访问。在浏览器关闭时才会被销毁。
var num = '';//需要在最外面。(1)
num = ''; //可以在任何位置。(2)
7.2局部作用域
在任何一个函数的内部都有一个局部作用域, 在局部作用域中定义的变量称为局部变量,局部变量只有在 定义该变量的函数中可以访问。在函数结束时销毁。
块级作用域 : 在js没有块级作用域 可以再外部访问括号内的变量。
8.JavaScript 运算符
- JavaScript 算术运算符 [+ - * / % ++ --]
+ 运算符用于把文本值或字符串变量加起来(连接起来)。
如需把两个或多个字符串变量连接起来,请使用 + 运算符。
两个数字相加,返回数字相加的和,如果数字与字符串相加,返回字符串.
- JavaScript比较运算符 [> < >= <= == === !=]
比较运算符在逻辑语句中使用,以测定变量或值是否相等。
可以在条件语句中使用比较运算符对值进行比较,然后根据结果来采取行动.后面内容中介绍。
- JavaScrip逻辑运算符 [|| && !]
逻辑运算符用于测定变量或值之间的逻辑。
- JavaScrip条件运算符
JavaScript 还包含了基于某些条件对变量进行赋值的条件运算符。
格式: var res=(condition)?value1:value2;
例如:如果变量 age 中的值小于 18,则向变量 voteable 赋值 "年龄太小",否则赋值 "年龄已达到"。
- JavaScrip typeof 操作符
无奈源于不够强大