javascript是一门动态弱类型的解释型编程语言,增强页面动态效果,实现页面与用户之间的实时动态的交互。
javascript是由三部分组成:ECMAScript、DOM、BOM
- ECMAScript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)
- DOM(Document Object Model)文档对象模型,提供访问和操作网页内容的方法和接口
- BOM(Browser Object Model)浏览器对象模型,提供与浏览器交互的方法和接口
JavaScript中代码注释:
- 单行 //
- 多行 /* */
1. 引入外部文件
1
2. 存放在HTML的或中
1
2
3
- HTML的head中
- HTML的body代码块底部(推荐)
3. 为什么要放在代码块底部?
- HTML代码从上到下执行,先加载CSS,避免html出现无样式状态;
- 将JavaScript代码块放在最后,可以让网页尽快的呈现给用户,减少浏览者的等待时间,避免因为JS代码块阻塞网页的呈现。
需要注意的是:局部变量必须以 var 开头申明,如果不写 var 则为全局变量
1
2
3
4
5
6
7
8
9
10
11
12
13
注:需要注意变量提升,就是把变量位置放到函数体的最上方
运算符1. 算术运算符
一元算术 + 一元加,数值不会产生影响 对非数值应用一元加运算时,会调用Number()转型函数对这个值进行转换 - 一元减,转换为负数 ~ ++ 递增1 通过Number()转型为数字,再加1,再重新赋值给操作数值 -- 递减1 ~ 二元算术 + 加法 - 减法 * 乘法 / 除法 % 取模
二元运算过程
2. 比较运算符
=== 严格运算符 比较过程没有任何类型转换 !== 严格运算符 ===的结果取反 == 相等运算符 如果两个操作值不是同一类型,相等运算符会尝试进行一些类型转换,然后再进行比较 != 不相等运算符 ==的结果取反 > 大于运算符 >= 大于等于运算符 < 小于运算符 <= 小于等于运算符
严格运算符比较过程
相等运算符比较过程
大于小于运算符比较过程
3. 逻辑运算符
! 非(两个!!表示Boolean()转型函数)
返回一个布尔值 && 与 两个操作都为true时返回true,否则返回false(返回值不一定是布尔值),可以多个连用(..&&..&&..) || 或 两个操作都是false时返回false,否则返回true(返回值不一定是布尔值),可以多个连用(..||..||..)1
2
3
4
5
6
7
8
9
10
11
//七个假值:
console.log(!!undefined);//false
console.log(!!null);//false
console.log(!!0);//false
console.log(!!-0);//false
console.log(!!NaN);//false
console.log(!!'');//false
console.log(!!false);//false
console.log(!!{});//true
console.log(!![]);//true
&& 常用操作
|| 常用操作
数据类型
特殊值:
- null 表示一个空对象指针,常用来描述"空值";
- undefined 表示变量未定义。
1、数字(Number)
JavaScript中不区分整数和浮点数,所有数字均用浮点数值表示。
转换:
- parseInt(..) 将某值转换成整数,不成功则NaN
- parseFloat(..) 将某值转换成浮点数,不成功则NaN
特殊值:
- NaN,非数字。可以使用 isNaN(num) 来判断。
- Infinity,无穷大。可以使用 isFinite(num) 来判断。
2、字符串(String)
String.length 字符串的长度 String.trim() 移除空白 String.trimLeft() 移除左侧空白 String.trimRight() 移除右侧空白 String.concat(value, ...) 拼接 String.slice(start, end) 切片 String.split( ) 分割 String.search( ) 从头开始匹配,返回匹配成功的第一个位置(g无效) String.match( ) 全局搜索,如果正则中有g表示找到全部,否则只找到第一个 String.replace( ) 替换,正则中有g则替换所有,否则只替换第一个匹配项;$数字:匹配的第n个组内容;
$&:当前匹配的内容;
$`:位于匹配子串左侧的文本;
$':位于匹配子串右侧的文本
$$:直接量$符号
String.charAt( ) 返回字符串中的第n个字符 String.charCodeAt( ) 返回字符串中的第n个字符的代码 String.fromCharCode( ) 从字符编码创建—个字符串 String.indexOf( ) 查找子字符串位置 String.lastIndexOf( ) 查找子字符串位置 String.localeCompare( ) 用本地特定的顺序来比较两个字符串 String.substr( ) 抽取一个子串 String.substring( ) 返回字符串的一个子串 String.toLocaleLowerCase( ) 把字符串转换小写(针对地区,在不知道程序在哪个语言环境中运行时用) String.toLocaleUpperCase( ) 将字符串转换成大写(针对地区) String.toLowerCase( ) 小写 String.toUpperCase( ) 大写 String.toString( ) 返回原始字符串值 String.toString() 返回原始字符串值 String.valueOf( ) 返回原始字符串值
转义字符
3、布尔类型(Boolean)
true(真)和false(假)
toString() 返回Boolean的字符串值('true'或'false') toLocaleString() 返回Boolean的字符串值('true'或'false') valueOf() 返回Boolean的原始布尔值(true或false)4、数组(Array)
1
2
var name = Array("nick","jenny");
var name = ["nick","jenny"];
Array.length 数组的大小 Array.push() 尾部添加元素 Array.pop() 删除并返回数组的最后一个元素 Array.unshift() 在数组头部插入一个元素 Array.shift( ) 在数组头部移除一个元素 Array.slice( ) 切片 Array.reverse( ) 反转 Array.join( ) 将数组元素连接起来以构建一个字符串 Array.concat( ) 拼接 Array.sort( ) 排序 Array 对数组的内部支持 Array.splice( start, deleteCount, value, ...)
插入、删除或替换数组的元素
obj.splice(n,0,val) 指定位置插入元素
obj.splice(n,1,val) 指定位置替换元素
obj.splice(n,1) 指定位置删除元素
Array.toLocaleString( ) 把数组转换成局部字符串 Array.toString( ) 将数组转换成一个字符串5. Math
Math对象是一个静态对象,而不是构造函数。实际上,Math只是一个由Javascript设置的对象命名空间,用于存储数学函数。
作用是执行普通的算数任务。
Math 方法
语句1、条件语句
JavaScript中支持两个条件语句,分别是:if 和 switch。
if 语句:
1
2
3
4
5
6
7
8
9
//if语句
if(条件){
}else if(条件){
}else{
}
Switch 语句:
1
2
3
4
5
6
7
8
9
10
11
12
//switch语句,name等于nick是执行第一个case,等于第二个执行第二个case,其它执行default.
switch(name){
case 'nick':
age = 18;
break;
case 'jenny':
age = 21;
break;
default :
age = 0;
}
2、循环语句
JavaScript中支持四种循环语句,分别是:for、for in、while、do-while
for 循环:
1
2
3
4
5
6
var names = ["nick", "jenny"];
for(var i=0;i
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?