[Web 前端] 025 js 的对象、数组和数学对象
1. Javascript 对象
1.1 创建对象
1.1.1 使用原始的方式创建内置对象
var myObject = new Object();
myObject.name = "lijie";
myObject.age = 20;
myObject.say = function(){...}
1.1.2 直接创建自定义对象
var 对象名 = {属性名1: 属性值, 属性名2: 属性值2, ...}
1.1.3 使用自定义构造函数创建对象
function pen(name, color, price){
// 1. 对象的 name 属性
this.name = name;
// 2. 对象的 color 属性
this.color = color;
// 3. 对象的 piece 属性
this.price = price;
// 4. 对象的 say 方法
this.say = function(){};
}
var pen = new pen("铅笔", "红色", 20);
pen.say();
1.2 this 关键字
this单词本意即为这个- 当对象调用某个方法时,方法中的 this 就代表着这个对象
- 类似 Python 中的
self
1.3 遍历
- for-in 语句可以遍历对象中的所有属性或数组中的所有元素
for(var i in window){
document.write(i + "---" + window[i]);
}
1.4 关于类型
- 测试类型
// 1. global 对象的其中一个方法
typeof()
// 2. 查看当前对象的构造函数是谁
对象.constructor;
// 3. 数组推荐用这种方法,因为 typeof() 得到是 object
if(arr.constructor == Array){
alert("数组");
}
2. Javascript 数组
- 数组就是一组数据的集合
- JS 中,数组里面的数据可以是不同类型的
2.1 定义数组的方法
// 1. 用对象的实例创建
var aList1 = new Array(1, 2, 3);
// 2. 直接量创建
var aList2 = [1, 2, 3, "abc"];
2.2 操作数组中数据的方法
2.2.1 获取数组的长度
- aList.length;
var aList = [1, 2, 3, 4];
alert(aList.length); // alert 4
2.2.2 用下标操作数组的某个数据
- aList[0];
var aList = [1, 2, 3, 4];
alert(aList[0]); // alert 1
2.2.3 在数组末尾增删成员
- push() 和 **pop() **
var aList = [1, 2, 3, 4];
aList.push(5);
alert(aList); // alert 1, 2, 3, 4, 5
aList.pop();
alert(aList); // alert 1, 2, 3, 4
2.2.4 在数组头部增删成员
- unshift() 和 shift()
var aList = [1, 2, 3, 4];
aList.unshift(5);
alert(aList); // alert 5, 1, 2, 3, 4
aList.shift();
alert(aList); // alert 1, 2, 3, 4
2.2.5 在数组中增加或删除成员
- splice()
var aList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
// 1. 若 splice() 只接受 1 个参数,表示删除该下标至末尾的所有元素,包括该下标
aList.splice(11);
console.log("1. aList =", aList);
// 2. 若 splice() 只接受 2 个参数,表示删除该两个下标间的所有元素,包括该下标
aList.splice(1, 3);
console.log("2. aList =", aList);
// 3. 若 splice() 只接受 3 个参数,前 2 个意思同上,第 3 个元素用来填补删除处
aList.splice(1, 3, 100);
console.log("3. aList =", aList);
// 4. 若 splice() 接受 3 个以上参数,前 3 个意思同上,第 4 个及之后的元素也用来填补删除处
aList.splice(1, 3, 101, 102, 103, 104);
console.log("4. aList =", aList);
- 运行结果
1. aList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2. aList = [0, 4, 5, 6, 7, 8, 9, 10]
3. aList = [0, 100, 7, 8, 9, 10]
4. aList = [0, 101, 102, 103, 104, 9, 10]
2.3 多维数组
- 多维数组指的是数组的成员也是数组的数组
var aList = [[1, 2, 3], ['a', 'b', 'c']];
alert(aList[0][1]); // alert 2
3. Javascript 数学对象
3.1 Math
// 1. 四舍五入
var res1 = Math.round(5.921);
var res2 = Math.round(5.321);
console.log("res1 =", res1);
console.log("res2 =", res2);
// 2.1 获取最大值
var res3 = Math.max(10, 20, 30, 41, 52, 14, 28, 39);
console.log("res3 =", res3);
// 2.2 获取最小值
var res4 = Math.min(10, 20, 30, 41, 52, 14, 28, 39);
console.log("res4 =", res4);
// 3. 获取绝对值
var res5 = Math.abs(-100);
console.log("res5 =", res5);
// 4.1 退一取整(向下取整)
var res6 = Math.floor(1.1);
var res7 = Math.floor(1.9);
console.log("res6 =", res6);
console.log("res7 =", res7);
// 4.2 进一取整(向上取整)
var res8 = Math.ceil(1.1);
var res9 = Math.ceil(1.9);
console.log("res8 =", res8);
console.log("res9 =", res9);
// 5. 幂运算
var res10 = Math.pow(2, 3);
console.log("res10 =", res10);
// 6. 开方运算
var res11 = Math.sqrt(9);
console.log("res11 =", res11);
- 运行结果
res1 = 6
res2 = 5
res3 = 52
res4 = 10
res5 = 100
res6 = 1
res7 = 1
res8 = 2
res9 = 2
res10 = 8
res11 = 3
3.2 random()
- 获取一个随机数,返回 (0-1] 之间的随机小数
- 从概率论的角度,可能取到 1,但取到的概率为 0
// 手动封装函数
function rand(m, n){
return Math.floor(Math.random() * (n-m+1)) + m; // m 写到 floor() 中也行
}
var res = rand(20, 30);
[Web 前端] 025 js 的对象、数组和数学对象的更多相关文章
- Web前端-Vue.js必备框架(一)
Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- Web前端-Vue.js必备框架(四)
Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...
- Web前端-Vue.js必备框架(三)
Web前端-Vue.js必备框架(三) vue是一款渐进式javascript框架,由evan you开发.vue成为前端开发的必备之一. vue的好处轻量级,渐进式框架,响应式更新机制. 开发环境, ...
- Web前端-Vue.js必备框架(二)
Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...
- Web前端-Vue.js必备框架(五)
Web前端-Vue.js必备框架(五) 页面组件,商品列表组件,详情组件,购物车清单组件,结算页组件,订单详情组件,订单列表组件. vue-router 路由 vuex 组件集中管理 webpack ...
- fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化
fastjson: json对象,json对象数组,javabean对象,json字符串之间的相互转化 在开发过程中,经常需要和前端交互数据,数据交互的格式都是JSON,在此过程中免不了json字符串 ...
- Web前端Require.js
前言 前段时间粗略的扫过一次require.js,当时没怎么在意,结果昨天看到index里面的代码就傻了,完全不知道从哪开始看啦,所以require与backbone的学习还要加紧才行. 由于前端所占 ...
- web前端——Vue.js基础学习
近期项目的前端页面准备引入Vue.js,看了网上一些简介,及它和JQuery的对比,发现对于新入门的前端开发来说,Vue 其实也是比较适用的一个框架,其实用性不比JQuery差,感觉还挺有意思,于是研 ...
- web前端:js
内嵌样式<script></script> alert(“123”)弹出对话框 document.write(“test”) 引入方式 <title></ti ...
随机推荐
- Python之面向对象之单例模式的四种方式
一.内容 保证一个类只有一个实例,并提供一个访问它的全局访问点 二.角色 单利 三.使用场景 当类只有一个实例而且客户可以从一个众所周知的访问点访问它时 比如:数据库链接.Socket创建链接 四.优 ...
- javascript面向对象学习(一)
面向对向的初体验 创建一个标签 // 传统 var p = document.createElement('p'); var txt = document.createTextNode('我是传统js ...
- Python 元组Ⅱ
删除元组 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例: 以上实例元组被删除后,输出变量会有异常信息,输出如下所示: 元组运算符 与字符串一样,元组之间可以使用 + ...
- vue 项目中 js命名规则
类型 规范 示例 常量 全字符大写,单词用 '_' 分隔 FETCH_USERS.GET_USERS 变量.函数 小写开头驼峰式 camelCase 类.特殊意义的命名空间 大写开头驼峰式 Camel ...
- ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解
目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...
- jQuery_完成表格的隔行换色
表格的颜色一样不利于区分,而利用jQuery则可以很方便的进行表格的隔行换色操作,原表如下: 这样看着很不方便,但是隔行换色之后非常便捷清楚. 代码如下: <!DOCTYPE html> ...
- centos7 安装 eclipse
1.到eclipse官网下载 https://www.eclipse.org/downloads/packages/ spring 官网 https://spring.io/tools3/eclips ...
- idea使用 git 撤销commit 原
填写commit的id 就可以取消这一次的commit
- ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)G GCD Guessing Game
G: 要你去才Paul的年龄,Paul的年龄在1~n之间,你每猜一个Paul会告诉你,你猜的这个数和他年龄的gcd,问在最坏情况下最少要猜多少次. 题解: 什么是最坏情况,我们直到如果他的年龄是1的话 ...
- js实现两个从input获取到的数字相加引发的问题
从input中获取到的数据是文本类型的,如果不转化类型直接相加会变成字符串的相加. 使用Number()函数可以解决这个问题,如下 var c = Number(a) + Number(b)