韩顺平网页设计第二十九三十讲
数组反转:
<script language="javascript" type="text/javascript">var arr=[[21,34,545,656],[23,76,-78,76],[2,3,43,22]];//定义一个新数组var arr2 = [];//初始化,定下有多少行for(var i=0;i<arr[0].length;i++){arr2[i]=[];}//遍历旧数组for(var i=0;i<arr.length;i++){for(var j=0;j<arr[i].length;j++){arr2[j][i] = arr[i][j];}}//成功,遍历arr2数组就是转置数组for(var i=0;i<arr2.length;i++){for(var j=0;j<arr2[i].length;j++){document.writeln(arr2[i][j]+" ");}document.write("<br/>");}</script>
注意arr2初始化哪里的代码。
21 23 2
34 76 3
545 -78 43
656 76 22
JS是一种基于(面向)对象的语言。所有的东西都基本上是对象。
基于对象和面向对象概念上基本上没有什么区别。
js没有类,它把类功能称为原型对象。是同一个概念。主要是因为js没有class关键字。类==原型对象。
js对象的属性可以动态的添加,是动态语言的表现。
下面的列子的实例是用构造函数的方法来定义对象:
<script language="javascript" type="text/javascript">//这里定义一个Cat类function Cat(){} Cat(); //如果这样用,是一个函数 var cat1 = new Cat();//如果这样用,是一个类,cat1是一个类对象cat1.name = "小白";cat1.age =3;cat1.color ="白色"; //对象的属性可以没有限制的动态添加。window.alert(cat1.name); </script>
创建对象的方式有五种:
1用构造函数来构建类,再创建实例对象
基本语法:
function 类名()
{}
创建对象: var 对象名 =new 类名();
可以通过 对象名.constructor 来查看对象的构造函数
可以通过 typeof 对象名 来查看对象的类型。
window.alert(cat1.constructor); //显示cat1对象的构造函数。window.alert(typeof cat1); //显示cat1的类型。var b=123;window.alert(b.constructor); //显示number这个构造函数。window.alert(typeof b); //显示是number类型。
说明:js中一切都是对象,类也是一种特殊对象。可以通过这个对象创建其他对象。
类其实是Function类的一个实例对象。
如何判断实例对象是不是person类型:
if(a instanceof person) //用于判断对象是不是person类型。a.constructor ==person也可以判断a对象是不是person类型。
{
window.alert("a 是一个person对象");
}
访问对象属性的方法有两种:
对象名.属性名 //普通方法
对象名["属性名"] //动态方法,属性名可以通过拼接的方式来生成。
function Person() {};var p1 = new Person();p1.name = "黄成都";window.alert(p1.name);var val = "na" + "me";window.alert(p1[val]);
js中对象在内存中存在的模式:
js还提供一种主动释放对象内存的机制:
delete a.age; //删除a对象的属性,导致对象a的其他引用页不能用age属性。即b.age失败。
韩顺平网页设计第二十九三十讲相关推荐
- 零基础语法入门二十九/三十讲讲 [情态动词否定和疑问and情态动词加上完成时的形式]
情态动词的否定形式 情态动词 + not +动词原形 1. He can't sing an Ecglish song. 2. He may not know her. 他可能不认识她 3. He c ...
- (二十九 ~ 三十一)巴菲特与索罗斯的投资习惯:投资习惯
作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai (一)巴菲特与索罗斯的投资习惯:思考习惯的力量 (二)巴菲特与索罗斯的投资习惯:七种致命的投资信念 (三 ...
- Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(三十)Cutout的放置
Altium Designer 18 速成实战 第五部分 PCB流程化设计常用操作(三十)Cutout的放置 目录 一.正片割铜 1.选择多边形铺铜挖空 2.画出某片区域 3.重新铺铜 4.结束,消 ...
- 程序员编程艺术第三十四~三十五章:格子取数问题,完美洗牌算法
第三十四~三十五章:格子取数,完美洗牌算法 作者:July.caopengcs.绿色夹克衫.致谢:西芹_new,陈利人, Peiyush Jain,白石,zinking. 时间:二零一三年八月二十三日 ...
- 程序员编程艺术第三十四 三十五章 格子取数问题,完美洗牌算法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第三十四 ...
- 年薪二十、三十、四十万的Java程序员的生活现状
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 深圳程序员 把年终奖金这种虚无的算上,刚好过了20的线,此外又是从始至终从事软件行业.符合 ...
- 设计好接口的三十六个锦囊
作为后端开发,不管是什么语言,Java.Go还是C++,其背后的后端思想都是类似的. 后端开发工程师,主要工作就是:如何把一个接口设计好. 今天就给大家介绍,设计好接口的 36 个锦囊. 1. 接口参 ...
- 3.22 3.23 二九三十C语言基础
字符和字符串 字符串数组赋值str[]={"china"}:语句执行后.末尾有一个\0,也就是说这是字符串的结束标志.字符串里面的处理函数<string.h>.复制函数 ...
- flash动画设计期末作业_「2019年下学期」第二十五二十六节:期末作品三-吉祥物设计...
初心 伟大的艺术品不必追随潮流,他本身就能引领潮流. 课前准备 软件安装 [2019(上)]<三维建模与动画设计> [2019年下学期]第一节:选修介绍及选修人数确定 [2019年下学期] ...
最新文章
- linux下基于内存分析的rootkit检测方法
- 深入解析Linux中的fork函数
- Makefile 书写命令
- SpringBoot基础入门
- C#语音朗读文本 — TTS的实现
- 第一份工作是选择安逸,还是勇敢尝试?
- 生活随笔:态度需要端正
- JWT【JSON Web Token】 简述
- 74-SSM项目实战前端开发
- 中学计算机基础知识,初中信息技术学业水平考试计算机基础知识考点大全(重点汇总)...
- No operator matches the given name and argument types. You might need to add explicit type casts
- python文件修改
- 5个免费 UI、界面设计素材网
- linux安装nginx、php、mysql搭建网站
- 如何使用VLOOKUP在Google表格中查找数据
- 开学“收心”指南来了
- Codeforces 869A. The Artful Expedient
- 13、hive在启动beeline客户端时报错:User: xxx is not allowed to impersonate xxx
- Dynamics 365(on-premises)公告栏报错
- 使用显着性检测对可见光和红外图像进行双尺度图像融合笔记
热门文章
- 北航计算机系男女比例,北航男女比例(北京航空航天大学的男女比例怎么样)
- 2021年机修钳工(中级)考试试卷及机修钳工(中级)模拟考试题
- C# WPF 关于async/await异步用法
- 新浪微博的id和mid互相转换(10进制和62进制转换)
- 英语笔记1.5.2022
- 体验服服务器更新维护,3月3日体验服维护更新公告
- Android keycode代码表
- 我学UML建模系列之核心元素 -------- 版型(类型)
- 华为云nbiot接入示例_详解WIFI NB-IOT接入阿里云平台MQTT协议实现数据传输
- 重装Win10系统的非常简单的操作教程