// 加粗
//换行
javaScript最初的目的
判断客户端的输入
JavaScript现在的意义
-页面特效(PC端的网页效果)
-移动端(移动web和app)
-异步和服务器交互
-服务端开发(nodejs)
JavaScript、HTML、CSS各自的作用
HTML 提供网页上显示的内容(结构)
CSS 美化网页(样式)
JavaScript 控制网页行为(行为)
设计原则:
结构、样式、行为---分离!
ECMAScript
JavaScript的语法规范
DOM
JavaScript操作网页上元素的API
BOM
JavaScript操作浏览器部分功能的API
console.log(“内容”)在控制台打印输出内容
document.write(“内容”)在页面书写内容
alert(“内容”)弹窗显示内容
JavaScript中的数据类型
简单(基本、值)数据类型
Number、String、Boolean Undefined、Null
复杂(引用)数据类型(暂时了解)
Object、Array、Date等
查看当前变量的数据类型
typeof name
typeof(name)
最小值:Number.MIN_VALUE,这个值为: 5e-324
最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
无穷大:Infinity
无穷小:-Infinity
NaN 非数值(Not a Number)
console.log(“abc”/18); //结果是NaN
NaN 与任何值都不相等,包括 NaN 本身
isNaN() :任何不能被转换为数值的值都会导致这个函数返回 true
isNaN(NaN);// true
isNaN(“blue”); // true
isNaN(123); // false
字符串字面量
var name = "zhangsan"; //"zhangsan"字面量
字符串要用引号引起,单引号和双引号的作用是等效的
例如:
var name = "zhangsan";
var name = 'zhangsan';
var name = 'zhangsan"; //错误,单引号和双引号要成对出现
字符串是由一个一个字符组成的,获取一个字符串中字符的个数可以使用length
例如:var name="zs"; alert(name.length);//2
Boolean类型有两个字面量:true和false,并且区分大小写!
Undefined这是一种比较特殊的类型,表示变量未赋值,这种类型只有一种值就是undefined
三种转换成字符的方法
toString()方法
var age = 18;
var ageString = age.toString();
console.log(ageString); // 结果 "18"
var result = true;
var resultString = result.toString();
console.log(resultString);// 结果 "true"
String()函数
var age = 18;
console.log(String(age)); //结果 "18"
var result = true;
console.log(String(result)); //结果 "true"
console.log(String(undefined)); //结果 "undefined"
使用拼接字符串
例如1:
var age = 18;
var str = age + "岁";
console.log(str);
例如2:
var str = "" + 18; //结果是"18"
三个把值转换成数值类型的函数:Number()、 parseInt()、 parseFloat()
数组
创建数组的两种方式
方式1,数组字面量
var arr1 = []; //创建一个空数组,数组字面量
var arr2 = [1, 3, 4]; //创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr3 = ["a", "c"]; // 创建一个包含2个字符串的数组
方式2,Array的构造函数
var arr4 = new Array(); // 创建一个空数组
var arr5 = new Array(10); // 创建一个长度为10的数组
var arr6 = new Array("black", "white", "red"); // 创建一个包含3个
字符串的数组
获取数组中的值
var colors = ["black", "white", "red"];
console.log(colors[0]); //获取第一个元素的值
colors["1"] = "blue"; //给第2个元素重新赋值
console.log(colors);
colors["4"] = "yellow"; //设置第5个元素的值,此时数组中有5个元素
console.log(colors);
length属性,获取或设置数组中元素的个数
console.log(colors.length);//获取数组中元素的个数
colors.length = 1; //设置数组中元素的个数
console.log(colors);
函数
1、函数声明
function f(a,b) {
return a + b;
}
console.log(f(5,6));
2、函数表达式
//myFun和f等价
var myFun = function (a,b){
return a + b;
}
console.log(myFun(6,7));
函数声明
//此处的代码执行没有问题,JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面。
console.log(f(5,6));
function f(a,b) {
return a + b;
}
函数表达式
//报错:myFun is not a function
//这是为什么呢
myFun(6,7);
var myFun = function (a,b){
return a + b;
}
匿名函数:没有命名的函数
作用:一般用在绑定事件的时候
语法
function () {}
自调用函数
(function(){alert("hello")})();
块级作用域
在其它语言中,任何一对花括号中的语句都属于一个块,在这之中定义的所有变量在代码块外都是不可见的
JavaScript中没有块级作用域
全局变量
定义在script或者不属于某个函数的变量
局部变量
定义在函数内部的变量
其它
函数内部可以访问到该函数所属的外部作用域的变量(作用域链)
不使用var声明的变量是全局变量,不推荐使用。
变量退出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁
变量提升
定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升。
函数提升
JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面
什么是回调函数?
简单理解就是函数做为参数。(这样的......)
复杂理解:回调函数就是一个通过函数调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
函数是一种数据类型
函数作为方法的参数
函数作为方法的返回值