JavaScript介绍
JavaScript是什么
HTML CSS
JavaScript 编程语言 流程控制
Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。
JavaScript现在的意义(应用场景)
JavaScript 发展到现在几乎无所不能。
1.网页特效
2.服务端开发(Node.js)
3.命令行工具(Node.js)
4.桌面程序(Electron)
5.App(Cordova)
6.控制硬件-物联网(Ruff)
7.游戏开发(cocos2d-js)
JavaScript和HTML、CSS的区别
HTML:提供网页的结构,提供网页中的内容
CSS: 用来美化网页
JavaScript: 可以用来控制网页内容,给网页增加动态的效果
JavaScript初体验
CSS:行内样式、嵌入样式、外部样式
javascript的书写位置
写在行内
<input type="button" value="按钮"onclick="alert('Hello World')" />
写在script标签中
<head>
<script>
alert('Hello World!');
</script>
</head>
写在外部js文件中,在页面引入
<script src="main.js"></script>
注意:引用外部js文件的script标签中不可以写JavaScript代码
变量
什么是变量
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
如何使用变量
var声明变量
var age;
变量的赋值
var age;
age = 18;
同时声明多个变量
var age, name, sex;
age = 10;
name = 'zs';
同时声明多个变量并赋值
var age = 10, name = 'zs';
变量的命名规则和规范
规则
1.由字母、数字、下划线、$符号组成,不能以数字开头
2.不能是关键字和保留字,例如:for、while。
3.区分大小写
规范
1.变量名必须有意义
2.遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。例如:userName、userPassword
3.变量在内存中的存储
数据类型
简单数据类型
Number、String、Boolean、Undefined、Null
Number类型
数值字面量:数值的固定String类型
‘abc’ “abc”
字符串字面量
‘程序猿’,‘程序媛’,
Boolean类型
Boolean字面量:true和false区分大小写
计算机内部存储:true为1,false为0
Undefined和Null
undefined表示一个声明了没有赋值的变量,变量只声明的时候值默认是undefined
null表示一个空,变量的值如果想为null,必须手动
复杂数据类型
Object
获取变量的类型
typeof
数组
为什么要学习数组
之前学习的数据类型,只能存储一个值(比如:Number/String。我们想存储班级中所有学生的姓名,此时该如何存储?
数组的概念
所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。
数组的定义
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。
函数
什么是函数
把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用
函数的作用
封装一段代码,将来可以重复使用
函数的定义
函数声明
function 函数名(){
// 函数体
}
函数表达式
var fn = function() {
// 函数体
}
函数的调用
调用函数的语法:
函数名()
特点:
函数体只有在调用的时候才会执行,调用需要()进行调用。可以调用多次(重复使用)
函数的返回值
当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进行后续的运算),这个时候可以让函数返回一些东西。
函数其它
匿名函数
匿名函数:没有名字的函数
匿名函数如何使用:
将匿名函数赋值给一个变量,这样就可以通过变量进行调用
匿名函数自调用
关于自执行函数(匿名函数自调用)的作用:防止全局变量污染。
自调用函数
匿名函数不能通过直接调用来执行,因此可以通过匿名函数的自调用的方式来执行
(function () {
alert(123);
})();
函数是一种数据类型
function fn() {}
console.log(typeof fn);
函数作为参数
因为函数也是一种类型,可以把函数作为两一个函数的参数,在两一个函数中调用
函数做为返回值
因为函数是一种类型,所以可以把函数可以作为返回值从函数内部返回,这种用法在后面很常见。
function fn(b) {
var a = 10;
return function () {
alert(a+b);
}
}
fn(15)();
作用域
作用域:变量可以起作用的范围
全局变量和局部变量
全局变量
在任何地方都可以访问到的变量就是全局变量,对应全局作用域
局部变量
只在固定的代码片段内可访问到的变量,最常见的例如函数内部。对应局部作用域(函数作用域)
变量提升
变量提升
定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升。
函数提升
JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面。