ECMAScript(核心)

js定义、特点、组成、用途
js:javascript,一门轻量级的脚本编程语言
特点:弱类型、语法简单、动态性、跨平台、基于对象
组成:
ECMAScript,规定了js的数据类型,操作语句,变量,内置对象。。。(js核心)
DOM(document object model):文档对象模型,提供了操作html文档的属性和方法。
BOM(bowser object model):浏览器对象模型,提供了操作浏览器的属性和方法。
用途:1、实现网页的动效
2、客户端表单验证
3、动态数据

js引入的三种方式
1、行内式
<div οnclick="alert('hello world');">点击弹窗</div>
2、内嵌式
<script>  脚本块
document.getElementById('box').onclick = function () {
    alert('hello world');
}
</script>
3、外链式  外链式脚本块之间的代码不执行
<script src="script.js"></script>

js的文档就绪事件:如果想把js放在head之间,必须使用
window.onload = function(){js代码}

<!--常用输出方式-->
<!--1、alert(''); 弹出框提示-->
<!--2、document.write(); 在文档中写入,在body的末尾追加-->
<!--3、console.log) ); 在控制台中打印,控制台可以编写和运行js代码,js的报错也是在控制台中提示的-->
<!--console.dir();  在控制台打印详细信息-->
<!--4、innerHTML: 设置或获取标签之间的html代码-->
<!--innerText:设置或获取标签之间的文本-->
===================================
ECMAScript(核心)
一 :数据类型
基本数据类型
string "" '';number NaN; bolean;null;undefined;
引用数据类型
array [];object{};RegExp /^1$/;function function(){}
检测数据类型
typeof   通常用来检测基本数据类型
instanceof  判断对象是否属于某个类的实例
通过构造函数方式new出来的基本数据类型的值才能被instanceof正确
地检测出来
type of null-->'object'
type of 引用数据类型-->'object'
{} instanceof RegExp-->true

数据类型转换
isNaN(); 检测一个值是否不是一个有效数字,如果是有效数字返回
false  会隐式调用Number(),强制转换成数字
Number(),强制转换成数字
parseInt();非强制转换成整数,从左往右查找数字,直到遇到非数
字就停止
parseFloat(); 非强制转换成小数,比parseInt多识别一个小数点
String();转换成字符串
var str = '12';
isNaN(str);
Number('12');//12
Number('');//0
Number('12.5');//12.5
Number('12.5px');//NaN
Number('12.5aaa123');//NaN
Number(true);//1
Number(false);//0
Number(null);//0
Number(undefined);//NaN
Number([]);//0
Number([12]);//12
Number(['12']);//12
Number([1,2]);//NaN
Number({});//NaN
Number(/1/);//NaN
parseInt('12.5');
parseInt('12px');
parseFloat('12.54563333'));
parseFloat('12.545.63333px'));

String(12);
String(true);
String(false);
String(null);
String(undefined);
String([1,2,3));//  '1,2,3'
String({name:'ujiuye'});//[object Object]
String(/123/);//   '/123/'
String(function(){});//   'funciton(){}'
=======================
二 :运算符
1.算数运算 2.赋值运算(== -= ...) 3.比较运算 4.逻辑运算

三:流程控制
1.分支 2.循环
forin  for(var key in obj){obj[key]} delete obj.attr

四:函数
函数:实现某个功能的一段代码
函数创建:function 函数名(){函数体}
函数执行:函数名();   函数可以多次调用
函数执行会产生私有作用域,函数体里面的私有变量不能被外界访问
在私有作用域里面可以访问到全局的变量。
1.创建  funciton 函数名(形参){}
2.调用  函数名(实参)参数相当于函数的私有变量,没有传值默认undefined
3.return 返回值,默认undefined  终止函数代码执行
4.函数的不同形式
命名函数
匿名函数  ele.onclick = funciton(){}
自执行函数
(funciton(){})()
~funciton(){}()
+funciton(){}()
-funciton(){}()

五:数组常用方法
1、push();
作用: 在数组末尾添加项
参数:要添加的项,多项逗号隔开
返回值:数组的新长度
原数组是否改变:改变
2、unshift()
作用: 在数组开头添加项
参数:要添加的项,多项逗号隔开
返回值:数组的新长度
原数组是否改变:改变
3、pop()
作用: 在数组末尾删除一项
参数:不需要
返回值:删除的那一项
原数组是否改变:改变
4、shift()
作用: 在数组开头删除一项
参数:不需要
返回值:删除的那一项
原数组是否改变:改变
5、splice()
作用: 截取数组项
参数:(n) 从索引n开始截取到数组末尾  (n,m) 从索引n开始截取m项  (n,m,a,b)  a和a之后的参数作为数组的项插入到截取的位置
返回值:截取的项组成的新数组
原数组是否改变:改变
6、slice()
作用: 复制数组项
参数:(n) 从索引n开始复制到数组末尾  (n,m) 从索引n开始复制到m-1
返回值:复制的项组成的新数组
原数组是否改变:不改变
7、concat()
作用: 把多个数组或 数组项拼成同一个数组
参数:数组或单项
返回值:拼接好的新数组
原数组是否改变:不改变
8、join()
作用: 把数组的每一项以一个指定的连接符连接成一个字符串
参数:连接符
返回值:字符串
原数组是否改变:不改变
9、indexOf()
作用: 查找指定的项在数组中第一次出现的索引
参数:查找的项
返回值:索引  ,如果不存在返回-1
原数组是否改变:不改变
10、lastIndexOf()
作用: 查找指定的项在数组中最后一次出现的索引
参数:查找的项
返回值:索引  ,如果不存在返回-1
原数组是否改变:不改变
11、reverse()
作用: 倒序数组
参数:不需要
返回值:倒序后的原数组
原数组是否改变:改变
12、sort()
作用: 给数组排序
参数:function(a,b){ return a-b;} 升序
function(a,b){ return b-a;} 降序
function (a,b) {return a.localeCompare(b,'zh');}
返回值:排序后的原数组
原数组是否改变:改变
==================================
六:字符串常用方法
字符串常用方法
1、indexOf();查找字符或字符串在字符串中第一次出现的位置
2、lastIndexOf();查找字符或字符串在字符串中最后一次出现的位置
3、charAt();  查找指定索引对应的字符
4、charCodeAt(); 查找指定索引对应的字符的unicode编码
5、String.fromCharCode(); 把unicode编码转换成字符
6、substr()   (n)从索引n开始复制到末尾  (n,m) 从索引n开始复制m个字符 (splice)
7、substring()   (n)从索引n开始复制到末尾  (n,m) 从索引n开始复制到m-1  (slice)
8、toUpperCase()   转换成大写
9、toLowerCase()   转换成小写
10、slipt()    把字符串以指定的分隔符分割成数组   ,分隔符可以是一个指定的字符或正则表达式split(/[, -]/)
11、replace(); 以一个新的字符替换字符串中指定的字符,  如果需要多次替换,需要使用正则 /e/g
var val = 'ujiuye';
var reg1 = new RegExp(val, 'g');//  /ujiuye/g
=================================
七:date常用方法
new Date()获取系统当前时间
new Date('2018-04-18 16:39:00')//把时间格式的字符串转化成时间对象
getFullYear()
getMonth()
getDate()
getDay()
getHours()
getMinutes()
getSeconds()
getMilliSeconds()
getTime()/获取当前时间对象距离1970年1月1日8:00:00毫秒数
============================
八:math
Math.abs(); 取绝对值
Math.ceil(); 向上取整
Math.floor();向下取整
Math.round();四舍五入
Math.max()  取最大值
Math.min()  取最小值
Math.random()  获取0-1之间的随机浮点数
获取n-m之间随机整数
Math.round(Math.random()*(m-n)+n);
获取n和m之间的整数
function getRandom(n,m) {
if(n > m){
var temp = n;
n = m;
m = temp;
}
n = Math.ceil(n);
m = Math.floor(m);
return Math.round(Math.random()*(m-n)+n);
}
==============================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值