1.javascript是一门编程语言,允许用户在浏览器页面完成复杂得事情。
2.javascript产生目的
为了处理表单中用户填写一些无效信息而给后台服务器产生的压力
javascript组成
核心ECMAScript dom bom
4.前端三要素三剑客
html --木偶得各个部位 轮廓素颜
css–木偶的衣服 化妆
js – 控制木偶动起来
javascript特点
1.客户端代码,在客户机上执行
也可以在服务器端执行,需要搭建node环境
2.解释型语言
浏览器和或者nodejs平台内置js解析器
3.弱类型语言
可以重复声明并初始化任何类型语言
4.从上到下依次解析执行
6.js执行方式
nodejs平台 浏览器中
1.node xxx.js
2.在vscode中引入script标签,可以插入到任意位置
3.外部引入脚本文件
7.注释
单行//
多行/**/
8.变量声明初始化
声明 var a;
初始化 a=10;赋值
声明并初始化 var a=10;
声明多个变量
var a,b,c;
声明多个变量并初始化
var a=10,b=20,c=30;
9.标识符–变量名,函数名—命名规则
1.由字母数字下划线以及$组成
2.不能以数字和下划线开头
3.有一定的意义,小驼峰式命名
4.不能使用关键字和保留字
五种基本数据类型
1.undefined
未定义类型
var a;只声明不初始化;
var a=undefined;
2.null类型
手动初始化成null
var a=null;
3.Boolean 布尔类型
var a=true; var b=false;
4.number类型
整数 小数 浮点数 十六进制 八进制 科学计数法
5.string类型
字符串类型 单双引号引起来的
11.检测数据类型 typeof
typeof 1 //number
typeof true //boolean
typeof undefined //undefined
typeof “hello” //string
typeof null //object
typeof object //object
object
function
typeof function (){}
function
数据类型
5种基本数据类型
null undefined number Boolean string
1种引用数据类型
object
function array
13.isNaN
isNaN 检测是否是数值
var a=9/“a”;//NaN
console.log(isNaN(a));true
true NaN false 不是NaN
14.inFinite
不在数值之内的数infinity或者-infinity表示
检测参数是否在最大值和最小值之间,在的话返回true
var a=9/0;
console.log(isFinite(a));false
console.log(isFinite(100));true
15.字符串长度 length
var a=“hello”;
console.log(a.length);//5 下标从0开始
console.log(a.charAt(2))
变量提升 声明变量
var 变量声明提升 使用var声明得变量会提升到作用域前边
console.log(a); //undefined
var a=1;
console.log(a); //1
1.特点
1.变量提升
2.可以重复声明
3. 全局作用域,在全局范围内都能访问到这个变量
(函数 局部作用域 {}代码块)
es6
let
1.不能变量提升
2.不可以重复声明
const 用来声明常量 常量的值不可修改,常量必须在声明得时候初始化
1.const PI=3.1415926
const PI; PI=3.14
1.用来声明常量 常量的值不可修改,常量必须在声明得时候初始化
2.不可重复声明
函数提升
有跟函数声明同名的变量声明的时候,变量声明会被忽略。
1.函数的提升会放在作用域的最顶部
2.有使用var声明得变量在函数提升之后进行变量提升
3.var声明变量和函数名重复,忽略var得值
console.log(test);
var test=1;
function test(){
}
函数提升的优先级大于变量提升
undefined与null的异同点
相同点:1.都表示空
2.在转为布尔值时都是false
3.undefined == null 表达式的值是true,二者的值是相等的。
不同点:
undefined派生自null,undefined==null结果为true
(1)undefined表示变量声明过但并未赋过值。它是所有未赋值变量默认值。
(2)null表示一个变量将来可能指向一个对象。一般用于主动释放指向对象的引用。
(3)Number转换的值不同,Number(null)输出为0, Number(undefined)输出为NaN。
(4)类型不一样:
console.log(typeOf undefined);//undefined
console.log(typeOf null);//object