1.javascript
javascript 是一种脚本语言。它是动态解释执行的。
1.1 引入js文件
1.使用javascript:前缀构建执行js的代码url
2.使用<script…/>来包含js代码
<script src="xxx.js" type="text/javascript"> </script>
1.2 数据类型和变量
js是弱类型语言,变量无需定义,直接给变量赋值,使用var关键字定义变量。
js变量是区分大小写的。
数值类型:整数Number和浮点数Float
布尔类型:true false
undefined类型:已经创建但没有初值的变量
null类型:设置为null的对象
1.3 字符串
字符串类型:可以单引号 双引号
var carname = "Volvo XC60";
var character = carname[7];
可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同
var answer = "It's alright";
var answer = "He is called 'Johnny'";
可以在字符串添加转义字符来
使用引号:
var x = 'It\'s alright';
var y = "He is called \"Johnny\"";
字符串长度
var sln = txt.length;
特殊字符
\'单引号
\"双引号
\\反斜杠
\n换行
\r回车
\t制表符
\b退格符
\f换页符
对象
var x = "John";
var y = new String("John");
(x === y) // 结果为 false,因为 x 是字符串,y 是对象
=== 为绝对相等,即数据类型与值都必须相等。
1.4 运算符
== 等于
=== 绝对等于(值和类型相等)
!== 不绝对等于(值和类型有一个不相等或者两者都不想等)
typeof 操作符
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
1.5 数据类型
在 JavaScript 中有 6 种不同的数据类型:
string
number
boolean
object
function
symbol
3 种对象类型:
Object
Date
Array
2 个不包含任何值的数据类型:
null
undefined
constructor 属性
constructor 属性返回所有 JavaScript 变量的构造函数。
1.6 字符串互相转换
将数字转换为字符串
String(x) // 将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String(100 + 23) // 将数字表达式转换为字符串并返回
//Number转换为字符串
x.toString()
(123).toString()
(100 + 23).toString()
//将布尔值转换为字符串
String(false) // 返回 "false"
String(true) // 返回 "true"
//Date 转换为String
String(new Date()) // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
//字符串转换为数字
Number("3.14") // 返回 3.14
Number(" ") // 返回 0
Number("") // 返回 0
Number("99 88") // 返回 NaN 不是数字
//布尔值转换为数字
Number(false) // 返回 0
Number(true) // 返回 1
//将日期转换为数字
d = new Date();
Number(d) // 返回 1404568027739
1.7 支持自动类型转换
var a = "3.1415";
var b = a-2;
var c = a+2;
alert(b+"\n"+c);
//结果:b=1.145 c=3.1452
减号:因为字符串不支持减法
,所以自动将字符串转换成数值
。
加号:字符串可以作为连接运算符,自动会转换为字符串。
isNaN() 是否不是数字 true 不为数字
toString()
parseInt(param) 将字符串布尔 转换成整数
parseFloat(param) 将字符串布尔值 转成浮点数
2. 创建对象
2.1 内置对象 Math Date
Math.floor() 向下取整
Math.ceil() 向上取整
Math.random() 0-1的随机值
var dd = new Date();
Array
String
2.2 构造函数及普通函数
function Person(name){
this.name = name;
}
// 对象的创建访问
var per = {
name: "lissi",
age: 12
};
var pp = new Person("lisi");
//普通函数
function methodName(name){
//可以添加返回值
return "hello world!"
}
2.3 创建对象
var book = {};
var book ={
”key“:"value",
"sub":"lisi"
author:{ //这是一个对象
"name":'wangwu'
}
//类内部方法
sayHi:function(){
alert('hello');
}
}
2.4 遍历对象
key是对象的属性名称,value 属性值
for(var key in obj){
console.log(obj[key]);获取value 值
}
3. 数组
3.1 创建数组
var arr = new Array();
var arr =['a','b','c'];
根据下标获取数组元素
console.log(arr[0]);
遍历数组
var arr = ['red','green', 'blue'];
for(var i = 0; i < arr.length; i++){
console.log(arrStus[i]);
}
数组长度
arr.length()
数组添加
arr[index] ='newName';
4.函数
4.1 arguments
当不确定有多少个参数传递
的时候,可以用 arguments 来获取。JavaScript 中,arguments实际上它是当前函数的一个内置对
象。所有函数都内置了一个 arguments 对象,arguments 对象中存储了传递的所有实参。arguments展示形式是一个伪数组,因此可以进行遍历
function fn() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
fn(1, 2, 3);
fn(1, 2, 3, 4, 5);
命名函数
匿名函数
5.作用域
全局作用域
局部作用域
作用域链
6.预解析
JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的。JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析和代码执行。
- 预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或者定义。
- 代码执行: 从上到下执行JS语句。
预解析会把变量和函数的声明在代码执行之前执行完成