js基础笔记
js组成
ECMAScript --js核心 标准,基本语法
BOM--浏览器对象模型
DOM--文档对象模型
js是一门脚本语言(不需编译)、解释性语言(直接解析)、动态类型语言、基于对象语言
常见脚本语言: t-sql cmd
js 可以用来控制网页内容,给网页增强动态效果
变量
用来操作数据(存储,读取)
js区分大小写,字符串可用双//单引号
变量名一般以字母、$、_ 开头,多个单词--》驼峰命名
js数据类型
原始数据类型:number(整数与小数),string(引号),boolean,null,undefined,object
NAN-----not a number
获取数据类型 typeof 变量名 typeof (变量名)
Inifity 无穷大
isNaN(num)
js字符串转义符 隐式转换
js类型转换
parseInt()转整数
parseFloat() 转小数
Number() 严格转数字
.toString() 转字符串类型
String() 无意义使用
Boolean() 其它类型转布尔类型
运算符
算数运算符 + - * / %
一元 :++ --
二元:两个操作数
三元 : 三个 表达式1 ? 2 : 3
复合运算符 : += *= 等
关系运算符: > < >= <= ==(不严格) === != !== 接过boolean
逻辑运算符 &&(逻辑与-- 并且) ||(逻辑或---或者) !(取反----取非)
赋值运算符 = += -= *= /= %=
优先级
一元 算数 关系 相等 逻辑 赋值
字面量 一个值直接赋值变量
流程控制
顺序结构 从上到下 从左到右
分支结构 if语句 if-else语句 i f- else if - else -----else switch-case(case里10为严格模式)
if(表达式){
代码块
}(范围判断)
switch() {
case 值1:代码1;break;
default: 代码5;
}(值判断)
循环结构
while 计数器 先判断,再循环
do-while 先循环,后判断,至少循环一次
for(; ;)知道循环次数
闰年 能被4整除但不能被100整除,或能被400整除
关键字使用: break(跳出当前所在循环).continue(开始下次循环);
数组
一组1有序数据 可以一次性存储多个数据
通过构造函数创建数组
var 数组名 = new Array
通过字面量的方式创建数组
var 数组名= [];
冒泡排序-----从小到大 从大到小
控制轮数 控制次数arr.length-1-i;
函数
函数参数 用户传进来的值操作
实参(调用时),形参(定义函数时)
实参个数可以跟形参不同。没有明确返回值undefined
函数返回值
get set
作用域
全局变量(不关闭,不释放) 局部变量
js没有块级元素,但函数里有(局部)
全局变量不能被删除,隐式可以(声明变量没有var)
作用域链
预解析 提前解析 变量声明提先了 函数也会被提前解析(不大懂)
arguments对象可获取传入的每个参数的值
命名函数 匿名函数
函数表达式 var f1= function () {} f1()
函数也是一种函数类型
函数作为参数使用
函数作为返回值使用
面向过程:注重过程
面向对象: 注重结果 特性: 封装,继承,多态,js不是面向对象语言,但模仿思想(基于面向对象)
创建对象三种方式:
调用系统构造函数 var obj= new Object(); obj.name="cccc";
自定义构造函数(结合第一种通过工厂模式创建对象) 用函数
自定义构造函数(堆栈内存)
首字母大写
字面量方式创建对象
var obj=(); onj.name=""; obj.age=10; 优化写法 var obj={ name:""; age:120; }
属性另外一种写法 object["name"]= "xxx"
对象不能区分到底属于什么类型 ?instanceof
JSON 格式的数据及遍历
json也是对象,数据成对,用双引号括起来 var key = "name" json[key];
for(var key i json) {} key是一个变量,存储属性名字
原始数据类型: number, string boolean, undefined, null,object
基本类型(简单类型),值类型:number,string,boolean
复杂类型(引用类型)object
空类型:undefined,null
值类型在 栈中存储 传递的是值
引用类型在栈和堆中存储 传递的是地址
js中三种对象:
内置对象 js自带的对象
Math
Date getFullYear getMouth getDate
String (稍微注意下) Length charAt String.fromCharCode .concat .indexOf .lastIndexOf .replace .slice(从索引几到索引几,不包含结束索引) split("|", "4") (分割后留下4个) .substr(开始,个数) .sunstring(开始索引,结束索引) .toLocaleLowerCse(小写) .toLowerCase() toLocalUpperCase .trim()(去掉两边空格)
Array instanceOf isArray concat every(a,b,c); (元素值,索引值,调用方法者) filter()(返回符合条件的值) push() 把值追加到数组中 pop'();删除数组中最后 ,返回该删除的zhi shif() 删除第一个 unshif()第一个1后插入 foreach() ----遍历数组 .join("|") 添加字符串
.map() .reverse()---反转 .sort()---排序 splice(1,0,"cc") 在索引1插入cc
Object
实例对象 静态对象
自定义对象 自定义构造函数创建的对象
浏览器对象
基本包装类型----普通变量调取了属性和方法,变成了对象,对象&&true 为true true&&对象,结果为对象