怎样调用Word的插入字符功能以插入欧洲字符

ufcr 2003-08-30 06:34:05
就是怎么调用Word - >Insert ->字符 的功能到我的程序中
还有 , 安装Word有什么要求
...全文
84 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dary_zhou 2003-09-03
  • 打赏
  • 举报
回复
是不是插入到WORD中,如果是插入到WORD中的话,你录一个宏,就晓得怎么插入了
如果不是,那就录一个宏,找到字符的ASCII再用CHR()不就可以实现了
sworddx 2003-08-30
  • 打赏
  • 举报
回复
个人认为,没有必要使用WORD。你只要知道对应的字符的ASCII码,就可以用CHR(##)来获取。
要获取这个ASCII码,可以使用WINDOWS的字符映射表附件(开始 程序 附件 系统工具 字符映射表,如果没有的话,需要在 添加删除程序里面安装)获取。例如,Б的ASCII为0XA7A2。注意这是十六进制,需要转换成十进制。
Microsoft Office Excel 新增系列工具 帮 助 文 件 一、必要条件: 请确认您安装了Microsoft Office Excel2003、2007或2010非简装版,系统平台是:Winxp/vista/win7/2000/2003/2008。 二、功能介绍: 本软件以插件形式安装到Microsoft Office Excel的COM组件中,在菜单栏(Excel2003)或加载项(Excel2007和Excel2010)中增加“新增工具”菜单,使得Excel增加了如下十四大功能。《群发邮件功能》已经被《电脑报》在2011年第6期、《创建目录与批量改名功能》在《电脑报》2010年第45期上向国内外推介。 (一)群发邮件功能 1、制作工资条(成绩条)和工资簿(成绩簿):一张员工工资表 (学生成绩表)是由同一工作表中的同一单行或多行的表头下共存的若干条记录组成,要把单人的工资 (成绩)发给本人,用本软件可轻松地将每条记录分离,并在每一条记录的上方添加一个表头,以明确各项目的意义,还要在下方增加一个空行,以便打印后裁剪。本软件还可以将工资条(成绩条)保存一个独立的工作簿文件。 2、工资条(成绩条)群发到邮箱:软件将工资条直接群发到每个人的邮箱,方便快捷,真正实现了无纸化高效办公。 3、工资条(成绩条)群发到手机:从Excel工作表的工资表中分离个人工资免费群发到手机,实现了快捷、便利、安全的目的。 4、工资条(成绩条)群发到个人文件夹:现在许多单位的个人信息都存放在服务器中由职工通过FTP查看,本软件能将同一个工作表中的每行记录(工资条)另存为同名的个人文件夹中,并统一改名。例如:存到[独立]文件夹中的名称为张三、李四的两个文件,可以对应的分别转存到张三、李四两个文件夹中,并将这两个文件改名为[9月份工资]。 5、把工作表内容分类群发到邮件与手机:软件首先将工作表记录分类另存为工作簿文件,然后将这些文件以附件形式群发到指定的类别负责人邮箱。例如,年级成绩表由各班学生成绩组成,软件首先把本表另存为各班工作簿,然后再把每一班的工作簿群发给对应的班主任。 6、群发同附件邮件:将同标题、同内容、同附件的共性邮件群发到多个邮箱与手机,与邮箱群发不同的是能“逐个群发”,不受群发数量限制,不会被对方看到多个地址,不会被过滤成垃圾邮件。 7、自动进入网易邮箱:凡是126、163、yeah邮箱,可以一键进入。 (二)学校数据处理 1、学生编班与调班:根据各学校、各年级给学生编班的标准不同提供了两种编班方法供选择: (1)按总分排名编班:可以按学生总分(或某一学科分数)参照成绩、性别、特殊生等因素进行一条龙排名,将学生均衡编入若干个教学班。分出来的教学班能够达到如下几项指标:(a)各班学生人数基本相等;(b) 各班男、女生学生数基本相等;(c)各个名次段人数各班基本相等;(d)平均成绩各班基本相等;(d)为满足不同用户要求,本软件可以不考虑男女生比例,仅按照成绩编班,还可以不考虑前若干名学生性别,仅考虑若干名之后学生的性别编班,也可以不按成绩随机分班;(e) 软件对编班结果冠以“准”字,目的是与正式编序号区别;(f)本软件具有智能提醒、检查与修复功能。引导您输入各项合理数据;为您自动修正性别、特殊生列在录入时文本前后误输入的空格现象。 (2) 按各学科考分编班:有“预先挑班”要求的首先满足。然后主要考虑各学科平均分的小差距,同时考虑性别搭配,在上述条件满足的情况下,考虑特殊生搭配(特殊生提供了两栏,可以填写优秀生、班干部、问题生、住校生等)。分出来的教学班所达到的几项指标同(1)。 两种分班方法的设计思路是:前者首先给学生分类排名,然后“一条龙”分配到各班,所以班数整数倍段的学生人数各班仅相差1-2人;后者根据学生各学科分数、性别等情况,一一判断这个学生分配到哪个班合适,所以最后的每班各学科平均分、总平均分相差仅在半分之内。 编者强烈建议您的特殊要求不要超过两个,不能考虑太多的编班因素,不然会以牺牲“均衡性”为代价。考虑因素越多,分班各档次学生数及平均分差距越大。 (3)调班:调班需要学生考分差异小、男女等条件要匹配,主调学生还不能被再度调出……所以,纯手工调班是相当劳神的事情,本软件设计了按考号大小、姓名音序自动查找、调班标记颜色与备注等功能,使调班轻松自如。调班后可以轻击按钮跟踪各班男女生数、特殊生数、前若干名学生平均分、校前若干名学生在各班的分布等。 2、学生排名/班成绩分析:(1)可以在年级各班同表的成绩单上给学生进行年级大排名,也可以进行学生所在班内的排名,即可以进行单学科排名、也可以进行多学科、总分一次性排名。(2)班成绩分析是指各各班成绩汇总成一张独立的表格,内容包括:应考试人数、实考试人数、平均分、班内前若干名平均分、年级前若干名在各班内的分布等。 3、快速写评语:本软件附赠学生评语库,用户可以在评语库中方便的选择评语填写在学生成绩单上(以第二列为准,测学生数),配合个人信息群发功能,快速发送到学生(或家长)个人邮箱。评语库中评语丰富,还可以随便增加与修改。 注:利用群发工资条(成绩表)功能,可以将由学校统一登统的校、年级学生考试成绩表拆分到每个班的成绩表后(保存在[分类文件]文件夹下的独立工作簿),群发到各班主任邮箱,再由班主任给本班学生在成绩记录行添加评语列,最终群发到学生(家长)的电子邮箱。 4、筛选各班前N名:筛选同一表格每个单位(班级)前N名的优秀人员(得分)的行数据,删除其余人员的行数据。 5、英语单词与解释分类:可以将中小学英语单词按照有几个连续字母相同来分类,例如可以将单词中含4个连续相同字母的单词分为一类(标注相同序号);还可以将中小学英语单词的解释按照有1个或2个汉字相同来分类(标注相同序号)。对于识记英语单词有很大的帮助。 (三)财务常用数据处理 1、添加与删除本页小计、累计与合计:可以方便的在帐目的每一页添加“本页小计”、“本页累计”,在尾页添加“本页小计”、“本页累计”与“合计”,还适用于分类筛选后的页面。通过“删除”键,可以方便的去除这些附加项。 2、人民币大小写等常用数据转换:可将人民币小写转换成大写、能四舍五入四舍五入、甩去零头取整、提取甩去的零头、工资纳税计算、分数或名次转等次、汉字转拼音、英语单词首字母转大写等。由于采用在单元格输入公式的方法,方便了用户的区域填充与公式修改。 (四)足球彩票分析专家 1、500WAN彩票网足彩分析:将500WAN彩票网上欧洲赔率数据下载到本地Microsoft Office Excel工作簿中,并且定时刷新网上数据,跟踪即时赔率与赛事的变化。用极短时间,在《欧赔走势》与《欧赔比较》等工作表中对各参数进行有机组合与比较分析,给玩家展示出各时段的赔率规律,是足彩必赢的可靠工具。 2、okooo彩票网北单胜平负分析:将okooo彩票网上的模拟庄家盈亏和即时SP值,定时下载到同一工作簿中,自动监测与记录实时变化情况,让玩家一目了然,准确做出各种判断。 (五)任意文件、文件夹处理 1、任意文件移动:将指定文件夹下的文件移动到新建同名文件夹内 2、创建当前工作簿中各工作表的目录:提供了包含链接和不含链接两种目录格式,点击目录可轻松打开相当的工作表。目录创建后,可以在目录修改列上随意修改目录。 3、创建选定文件夹下的文件目录:创建选定文件夹下所有文件目录,还可以包含该文件夹下所有子文件夹内的所有文件目录,也可以选择性的创建只创建Word、Excel文件目录,点击目录可轻松打开相当的文件。目录创建后,可以在目录修改列上随意修改目录。 4、创建与本工作簿并列的文件夹目录:目录创建后,点击目录可轻松打开相当的文件夹,还可以在目录修改列随意修改目录。 5、工作表排序:工作簿中的若干工作表顺序混乱查找不方便,软件的工作表排序功能可以帮您将工作表按间序做升序与降序排列。 (六)Word文档中的表与Excel工作簿中的工作表之间的转化 1、Word转Excel:把若干个Word文档中的表合并到Excel工作簿中的一个工作表中,可用于对下属填写的报名表(登记表)的汇总统计。 2、Excel转Word:把Excel工作簿的某个工作表中记录逐一拆分到对应的若干个Word文档中(表)中,可用于向下属发通知、通告等。 (七)多工作簿与当前工作簿中的工作表之间的转换 如下是不改变各工作表的内容转换操作: 1、多个工作簿中的多表导入到一个工作簿中的多工作表:将同一文件夹下的各工作簿中所有的非空工作表合并到当前工作簿中,各新建工作表仍保持原工作簿中的原工作表内容不变。新建工作表的命名有两种方式:一种是以原先各工作簿各[工作表名称]命名,另一种是以[原工作簿名称&原工作表名称]命名(这样可以保证工作表名称不重名)。 称命名为本工作簿中各工作表的名称,转化后的工作表内容不变。 2、工作簿与工作表名称互换:用于日报表的月底汇总。例如,到月底把每天统计的项目日报表,转化为各项目的每天情况。日报表形式:每天制作一个工作簿,每个工作簿中有N个工作表(统计N个项目), 一个月共有30个工作簿;要转化成的月底汇总表形式:共导出N个工作簿,每个工作簿的名称为项目名称,其中有30个工作表,工作表名称以1-30命名(本月日期)。转换过程中工作表内容和总数(30*N)不会改变。 3、抽取多工作簿中的同名工作表到同一新建簿中:从指定文件夹的所有工作簿中抽取与当前工作簿名称相同的工作表到同一个工作簿,这个工作簿的各工作表的名称为所抽取工作簿的名称,抽取后的工作表内容不变。 4、一个工作簿中的各工作表分解为独立的工作簿:将当前工作簿中若干个指定工作表拆分为独立的工作簿,独立的工作簿名称为当前工作簿中工作表的名称。 如下是增加或减少工作表的行列内容的合并或拆分操作: 5、多个工作簿中各个表头相同的工作表合并到同一个工作表中:合并后的表格的表头相同,为了明确每一条记录的来源,在表中增加一列标注记录来看何簿何表。 6、多个工作簿中各个名称相同的工作表合并到同一个工作表中:合并后的表格的表头相同,为了明确每一条记录的来源,在表中增加一列标注记录来看何簿何表。 7、多个工作簿中的所有工作表或指定工作表相同位置(区域)求和:打开(复制)一个空白的汇总表,表格格式与要汇总的表相同,凡鼠标选定单元格连续或不连续区域将对所有表格做累加计算。 8、当前工作表中每行记录都独立拆分到独立工作簿:可用于制作每位职工的工资条。 9、当前工作表中行记录按某一列指定的类别拆分成组工作簿:类似Excel自带的高级筛选功能,可以把一个年级各班都在同一个工作表上的学生名单(成绩单)拆分成每个班的名单(成绩单),发给班主任。 (八)同一工作簿中各工作表的转换 1、多个工作表中各个表头相同的工作表合并到同一个工作表中:合并后的表格的表头相同,为了明确每一条记录的来源,在表中增加一列标注记录来看何簿何表。 2、多个工作表中各个名称相同的工作表合并到同一个工作表中:合并后的表格的表头相同,为了明确每一条记录的来源,在表中增加一列标注记录来看何簿何表。 3、多个工作表中相同位置的行(列)集中到同一表:本工作簿中有若干格式相同的表,为了便于观察各表相同位置数据的变化,可以首先用鼠标选定要观察的区域,然后执行本命令,则各工作表的同位置区域数据集中排列到同一个表中,并自动标注该数据来自何表。 4、表头同行数异字段名表合到新表:表头行数相同,但各列的字段名不完全相同的工作表合并。合并结果为:总表记录行数为各工作表的记录行数之和,表头列数为各工作表列数之和,并在A列多出一个标志列,标记本条记录来源于哪个工作表。 5、多表(单表)同类数据合并与求和:其效果是:(a)标识列重名的合成一条记录;(b)需要合并到一个单元格的数据为文本时用“/”号隔开,数据为数值通过求和合并到一个单元格中。例如,当前工作表或当前工作簿中的若干工作表中A列有张三、李四、王五、李四,有相同列字段“送货”,则本命令把A列中的两个李四行合并成一行,同时将每个人在所有表中列字段为“送货”的数量相加。 6、比较两表人员差异追加列记录:其效果是向已有表中增加新表中的人员(行数据)和表中所有人员的新增信息(列数据),它适合于档案的逐步完善与保存。本命令可用于档案补充。例如:第一个表中有A、B、C三人,第二个表中有A、C、D、E四人,可以抽取两表中都有的A、C二人,还可以合并成A、B、C、D、E五人,并且可以追加一个表中的新的列字段到另一个表。 7、按类别拆分一个工作表中的行记录(组)到新表:是指将一个工作表中的多条记录按按照某一列或某两列的类别关键(第一关键字和第二关键字)字拆分成若干个结构相同的工作表,它适合于档案数据记录的分类。 8、按预设记录条数拆分行记录到新表:可以将当前工作表的记录按指定的条数,拆分到若干个工作表中。 9、删除删除某列为空或和为0的工作表:本操作将删除指定列从第n行起单元格中数字为空或为0的工作表,给合并有效的工作表扫清障碍。 10、检查两列同行两单元格是否相同:由ID号意义相同的从表向主表合并列记录时,往往先将从表记录粘贴到主表中,然后删除从表中的ID等与主表重复的列记录,本命令用来比较两列同行单元格(ID号)是否相同。 (九)工作表中的特殊行处理 删除与标注重复行、特殊数据行操作代码用字典法编写,比Excel公式与高级筛选提速几十倍。 1、重名查找与姓名美化:本软件不仅能查找同字重名,还能查找同音重名。执行此命令能够为某一列的重复数据(包含汉字同音)染色,并且不同的重复数据染不同颜色,还可以把这些重复数据导出到一个新的工作表中。例如:可以将重名学生染同色,并可以导出到新的工作表中保存。 2、某列重复数据标注与整行删除:在每行指定列的各单元格中查找重复数据(同相的文本或数字),对重复的单元格染色、并在行尾标注文字(例如“此行重复”),还可以直接删除含重复数据的整行(把所有重复行删除仅保留一行)。 3、某列重复数据的重复次数计数,提取、删除各种形式的重复数据; 4、某列带颜色单元格所在所的提取与删除; 5、取删除工作表中整行为空值的行,即删除整行中各单元格无数据的行; 6、删除某区域中含空单元格的行; 7、删除整行与另一行完全重复的行(把所有重复行删除仅保留一行)。 8、删除区域中某单元格包含相同内容的行。 (十)单元格输入及区域操作 1、合并(还原)某区域内连续相同单元格:(1)在表格中某些列的连续行单元格中存在相同的数据,本命令可以把这些连续的单元格合并,在合并后的单元格中只保留一个数据。(2)许多表格中的某些连续列存在爷父子孙的从属关系,本命令可以把每一级别的上一级单元格合并,在合并后的单元格中只保留一个数据。(3)合并后的单元格还可以用本命令来取消合并。 2、N列中从有数据单元格向下填充:在N列区域每一列中从第一个有数据单元格向下面的空单元格填充,直到第二个有数据单元格,如果下面单元格没有数据,则填充到指定行为止。 3、含有合并单元格列的排序(整体排序):按照含有合并单元格中的数据进行排序,用Excel的已有功能是办不到的,会出现“此操作要求合并单元格都具有相同大小”的提示,但用本插件中的命令易如反掌。 4、删除整表错误输入的空格:在数据输入过程中,各字符的前后难免会错误输入空格,给人工校对工作带来很大的麻烦。特别是对于数据的后面含有空格的情况,通过人工校对很难发现。本软件根据实际需要,提供了三种删除空格的命令:(1)将整个工作表中的所有空格全部删除;(2)保留数据内部字符间的空格,仅删除数据前后的空格;(3)删除数据前后的所有空格,并删除数据内部字符间一个以上的空格(仅保留一个)。 5、增加与标注空格操作:姓名美化,主要是将两字姓名的中间加一个空格,并将本列居中对齐,加强美感。 6、更改已经输入数据后单元格格式(数据类型):本命令解决在单元格输入数据后利用[格式]-[单元格]-[数字],无法再重新定义单元格数据类型问题。可将数据类型在文本型、数值型、日期型之间随意互化。 7、词组逐字或字头逐个联想(词组逐字联想或声母逐个联想与指定行快速选定):两个作用:1、快速查找指定的单元格所在的行(快速定位);2、结合已有的词组等数据源,快捷输入数据。四个功能:1、逐个打入汉字联想;2、逐个打入拼音的声母联想;3、对于数据源中没有的数据可以直接在文本框中输入;4、存贮新建词组等数据,以备后期输入。 8、同文件夹下各工作簿各工作表中查找:可查找等于、包含、左包含、右包含某一内容的单元格。首先在打开的工作簿中查找,然后在本文件夹中的各工作簿中查找,查找结果以查找日志形式保存到桌面的文本文件中。 (十一)批注与图片导入导出 批量插入图片(文字):本软件提供了向工作表中批量插入图片的功能,有批量向批注中插入图片、批量向单元格填充图片、批量向单元格插入图片等选项,默认小二寸插入方式,也可以以厘米为单位,选择任意尺寸,原始图片默认jpg图片格式,也可以是gif、bmp、png等任意格式。软件还提供了仅插入文字功能。 被插入到单元格中的图片和所有批注,可以通过本软件一次性删除。 批量导出图片(文字):可保持图片原尺寸无损导出,也可以以工作表中的图片显示尺寸导出。导出图片的文件名有三种形式:1、图片序号;2、Excel中标注的名称;3、图片固有文件名称。 (十二)安全相关 1、制作超过打开次数或超过指定时间打开后能自动删除(自杀)的工作簿:有时候我们发送给别人的工作簿文件不希望永久保留,怎么办?本软件可以生成一种特殊的工作簿,你可以指定允许打开N次,当超过N次再打开,该工作簿会自杀;你也可以指定一个时间,超过这个指定时间打开后也会自动删除(自杀)。 2、解除密码:可解除当前工作表保护密码,解决因忘记密码而带来的麻烦; 3、隐藏与取消隐藏:可一次性显示被隐藏的若干个工作表,弥补了Excel自身的不足;可同时显示工作表中被隐藏的多行与多列,并能够调整行高与列宽为最合适的尺寸,检测数据区域内是否包含空行与空列。 4、显示恶意屏蔽:可显示被恶意屏蔽的菜单栏、工具栏、格式栏、工作表窗口右键菜单和工作表标签右键菜单。 (十三)页面设置与打印 1、分栏与分页排版:一般地,在工作表中都是一行独占一条记录,但有时其所占列数仅有2-3列,打印下来,即浪费纸张又不美观,本软件可以像Word一样将这种版面进行分栏重新排列成原来列数的N倍。记录顺序既可以按第一列排完再折列排版,也可以按每页指定固定行数分栏排列。 2、当前页与双面打印:软件能够一次性完成Excel文档的双面打印、还可以任选起止页进行隔页打印,以实现更灵活的双面打印;软件还可以仅打印当前页。填补了Excel没有当前页打印和双面打印功能的空白,比Word中的打印功能还要强悍。 3、添加和删除实线分页符。添加实线分页符,可以起到按一定标准将一个工作表拆分成若干个工作表的效果,但又。 (十四)软件卸载 本软件在菜单中有临时卸载和长期卸载功能,也可以通过开始菜单卸载,还可以在控制面板卸载,软件卸载后不留残余,因而您可以放心试用。
Javascript Basic 1、Javascript 概述(了解) Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发了一款语言 ScriptEase 2、1995年 Netscape(网景) 开发了一款语言 LiveScript,更名为 Javascript 3、1996年 Microsoft(微软) 开发了一款语言 JScript 4、1997年 网景 将Javascript 1.1 提供给了ECMA(欧洲计算机制造商联合会),ECMA 获取了 JS 的核心,称之为 ECMA Script (ES) 完整的JS组成: 1、核心(ES) 2、文档对象模型(Document Object Model) - DOM 允许让 JS 与 HTML 文档打交道 3、浏览器对象模型(Browser Object Model) - BOM 允许让 JS 与 浏览器进行交互 JS是一款基于对象的编程语言 2、JS的基础语法 1、浏览器内核 内核负责页面内容的渲染,由以下两部分组成: 1、内容排版引擎 - 解析HTML/CSS 2、脚本解释引擎 - 解析Javascript 2、搭建JS运行环境(重点) 1、独立安装的JS解释器 - NodeJS console.log("Hello World"); console.log('Hello World'); 2、使用浏览器中的内核(JS解释引擎) 1、在浏览器的控制台(Console)中,输入脚本并执行 2、将JS脚本代码嵌入在HTML页面中执行 1、采用HTML元素事件执行JS代码 事件 : 1、onclick 当元素被点击时执行的操作 ex: 当按钮被点击时,在控制台中输出 Hello World 2、将JS脚本编写在 [removed][removed] 并嵌入在HTML文档的任何位置 [removed] console.log("... ..."); [removed]("Hello Wolrd"); [removed] 3、将JS脚本编写在外部独立的JS脚本文件中(***.js) 步骤: 1、编写JS脚本文件 2、在HTML中引入脚本文件 [removed][removed] 练习: 1、先创建一个 base.js 的文件 2、在文件中执行以下代码 console.log(" .... ... "); [removed](" ... ... "); window.alert("这是在外部脚本文件中的内容"); 3、在 html 文档中,引入 base.js 文件 3、JS调试 当代码编写出现错误时,在运行的时候,在错误位置会停止 碰到错误代码,会终止当前语句块的执行,但不影响后续块的执行 [removed][removed] 为一块 4、JS语法 1、语句 - 可以被JS引擎执行的最小单元 由表达式、关键字、运算符 来组成的 严格区分大小写 :name 和 Name 所有的语句都是以 ; 来表示结束 所有的标点符号都是英文的 ; 和 ; . 和 。 : 和 : " 和 “ ' 和 ‘ () 和 () [] 和 【】 {} 和 {} 2、注释 单行注释: // 多行注释: /* */ 3、变量 与 常量 1、变量 1、什么是变量 用来存储数据的一个容器 2、声明变量(重点) 1、声明变量 var 变量名; 2、为变量赋值 变量名=值; 3、声明变量并赋初始值 var 变量名=值; 注意: 1、变量在声明时没有赋值的话,那么值为 undefined 2、声明变量允许不使用var关键字,但并不推荐 练习: 1、创建一个网页 04-variable.html 2、声明一对 [removed][removed],并完成以下变量的声明 1、声明一个变量用于保存用户的姓名,并赋值为 "张三丰"; 2、声明一个变量用于保存用户的年龄,赋值 68 3、如何 将变量的数据 打印在控制台上?? 4、一条语句中声明多个变量 var 变量名1=值,变量名2=值,变量名3; 3、变量名命名规范 1、由字母,数字,下划线以及 $ 组成 var user_name; 正确 var user-name; 错误 var $uname; 正确 2、不能以数字开头 var 1name;错误 3、不能使用JS中的关键字 和 保留关键字 4、变量名不能重复 5、可以采用"驼峰命名法",小驼峰命名法使用居多 6、最好见名知意 var a; var uname; 4、变量的使用 1、为变量赋值 - SET操作 只要变量出现在 赋值符号(=)的左边一律是赋值操作 var uname="张三丰"; uname="张无忌"; 2、获取变量的值 - GET操作 只要变量没有出现在赋值符号(=)的左边,一律是取值操作 var uname="wenhua.li";//赋值操作 console.log(uname); var new_name = uname; new_name 是赋值操作 uname 是取值操作 uname = uname + "bingbing.fan"; 赋值符号出现的话,永远都是将右边的值,赋值给左边的变量(从右向左运算) 2、常量 1、什么是常量 在程序中,一旦声明好,就不允许被修改的数据 2、声明常量 const 常量名=值; 常量名在命名时采用全大写形式 作业: 1、声明一个变量 r ,来表示一个圆的半径,并赋值 2、声明一个常量PI ,来表示圆周率3.14 3、通过 r 和 PI 来计算 该圆的周长,保存在变量l中 周长 = 2 * π * 半径 4、通过 r 和 PI 来计算 该圆的面积,保存在变量s中 面积 = π * r * r; 5、在控制台中打印输出 半径为 * 的圆的周长是 * 半径为 * 的圆的面积是 * 笔记本名称:ThinkPad E460 笔记本价格:3000 笔记本库存:100台 1、运算符 1、位运算符 1、作用 将数字转换为二进制后进行运算 只做整数运算,如果是小数的话,则去掉小数位再运算 2、位运算 1、按位 与 :& 语法 :a & b 特点 :将 a 和 b 先转换为二进制,按位比较,对应位置的数字都为1的话,那么该位的整体结果为1,否则就为0 ex:5 & 3 5 :101 3 :011 =========== 001 结果 :1 使用场合:任意数字与1做按位与操作,可以判断奇偶性,结果为1,则为奇数,否则为偶数 0 :0 1 :1 2 :10 3 :11 4 :100 5 :101 5 & 1 101 001 ========== 001 4 & 1 100 001 ==== 000 2、按位 或 :| 语法 :a | b 特点 :将 a 和 b 转换为 二进制,按位比较,对应位置的数字,至少有一位为1的话,那么该为的整体结果就为1,否则为 0 ex : 5 | 3 101 011 ======== 111 结果为 :7 适用场合:任何小数与0 做 按位或的操作,可以快速转换为整数(并非四舍五入) 5 | 0 101 000 ==== 101 3、按位 异或 :^ 语法:a ^ b 特点:将 a 和 b 先转换为二进制,按位操作,对应位置上的两个数字,相同时,该位整体结果为0,不同时,该位的整体结果为 1 使用场合:快速交换两个数字 5 ^ 3 101 011 ========== 110 结果为 6 练习: var a = 5; var b = 3; a = a ^ b; b = b ^ a; a = a ^ b; console.log(a,b); 3、赋值 和 扩展赋值运算符 1、赋值运算符 := 2、扩展赋值运算符 +=,-=,*=,/=,^=,... ... a += b; ==> a = a + b; a = a + 1; ==> a += 1; ==> a++ ; ==> ++a 3、练习 1、从弹框中,分两次输入两个数字,分别保存在 a 和 b中 2、如果 a 大于 b的话 ,则交换两个数字的位置 使用 短路&&,扩展赋值运算符,位运算 4、条件运算符(三目运算) 单目(一元)运算符 :++,--,! 双目(二元)运算符 :+,-,*,/,%,>,= 18 ? "你已成年" : "你未成年"; 练习: 从弹框中录入一个数字表示考试成绩(score) 如果 成绩为 100 分 ,提示 :满分 如果 成绩 >= 90 分 ,提示 :优 如果 成绩 >= 80 分 ,提示 :良 如果 成绩 >= 60 分 ,提示 :及格 否则 :提示 不及格 2、函数 1、什么是函数 函数(function),是一段预定义好,并且可以被反复使用的代码块 预定义好 :事先声明,但不是马上执行 反复使用 :可以被多次调用 代码块 :包含多条可执行的语句 2、函数的声明与调用 1、普通函数 语法: function 函数名(){ 语句块; } 调用:在JS中任何的合法位置处,都可以通过 函数名() 的方式进行调用 练习: 1、声明一个函数,名称为 change 2、在函数中 1、通过弹框,分两次,录入两个数字,保存在 a 和 b 2、先打印 a 和 b的值 3、如果 a > b 的话,则交换两个数字的位置 4、再打印 a 和 b的值 3、在网页中,创建一个按钮,点击按钮时,完成 change 函数的调用 2、带参函数 1、定义语法: function 函数名(参数列表){ 语句块; } 参数列表: 可以由0或多个参数的名称来组成,多个参数的话中间用 , 隔开 定义函数时的参数列表,都称为 "形参(形式参数)" 2、调用语法 任意合法JS位置处 函数名(参数列表); 调用函数时,所传递的参数列表,称之为"实参(实际参数)" 3、练习 1、定义一个函数 change ,该函数中接收两个参数(a,b) 2、在函数体中,如果 a 大于 b的话,则交换两个数字的位置,再打印输出结果 3、通过一个按钮调用函数,并且将 两个数字传递给函数 4、常用带参函数 parseInt(变量); parseFloat(变量); Number(变量) console.log(""); 3、带返回值的函数 var result = parseInt("35.5"); 1、什么是返回值 由函数体内 带到 函数体外的数据,叫做"返回值" 2、语法 function 函数名(参数列表){ 语句块; return 值; } 允许通过一个变量来接收调用函数后的返回值 var 变量名 = 函数名(实参列表); 3、练习 定义一个可以接收三个Number参数的方法(名称为getMax),在该方法中,计算并返回 最大的数值 3、作用域 1、什么事作用域 指的是变量和函数的可访问范围,作用域分为以下两类 1、函数作用域 只在定义的函数内允许访问变量 和 函数 2、全局作用域 一经定义,在任何位置处都能访问 2、函数作用域中的变量 在某个函数中声明的变量,就是函数作用域中的变量,也可以称之为 "局部变量"。 function calSum(){ var a = 3; var b = 5; console.log(a,b); // 输出 3 5 } console.log(a,b); //错误,因为 a ,b已经出了它的定义范围 练习: 1、定义一个 函数calSum,声明两个变量a,b,并赋值,并且在函数内打印两个变量 2、定义一个 函数calMax,直接打印输出 a,b,观察结果 3、全局作用域中的变量 一经声明了,任何位置都能使用。也称为 "全局变量" 声明方式: 1、将变量声明在最外层,所有的function之外 [removed] var a = 15; var b = 18; function showMsg(){ console.log(a); console.log(b); } [removed] 2、声明变量时,不使用var关键字,一律是全局变量,但有风险 建议: 全局变量 ,尽量都声明在 所有的 function 之外 声明变量时,也一律都使用 var 关键字 4、声明提前 Q : function show(){ console.log(num);//报错 } 1、什么是声明提前 JS程序在正式执行前,会将所有var声明的变量以及function声明的函数,预读到所在作用域的顶端。但赋值还保留在原位置上 2、建议 最好将变量的声明 和 函数的声明都集中到所在作用域的最顶端 5、按值传递 Q : function change(a,b){ a ^= b; b ^= a; a ^= b; console.log("在change函数中"); console.log(a,b); } function testChange(){ var a = 15; var b = 18; console.log("调用前:"); console.log(a,b);//15 18 change(a,b); console.log("调用后:"); console.log(a,b);//15 18 } 1、什么是按值传递 基本数据类型的数字在做参数传递时,实际上时传递的实参的副本到函数中,原始数据并未发生过改变 2、建议 基本数据类型的数据在做参数传递时,尽量不要在函数中修改,因为即便修改,也不会影响原数据的 6、局部函数 将函数 再声明在某个函数内,就是局部函数 [removed] function show(){ function inner(){ console.log("show 中的 inner 函数"); } inner();//正确 } inner(); // 错误,inner 是局部函数,只能在 show中被调用 [removed] 7、全局函数 ECMAScript预定义的全局函数,可供用户直接使用 1、paseInt(); 2、parseFloat(); 3、Number(); 4、isNaN(); 5、encodeURI() URL:Uniform Resource Locator :统一资源定位符/器 URI:Uniform Resource Identifier : 统一资源标识符 1、作用 对统一资源标识符格式的字符串进行编码,并返回编码后的字符串 编码:将多字节的字符,编译成多个单字节的字符 6、decodeURI() 1、作用 对已编码的URI进行解码(将已编码内容再转换回中文) 7、encodeURIComponent() 在 encodeURI 基础之上,允许将 特殊符号(:,/,...) 进行编码 8、decodeURIComponent() 9、eval() 作用:计算并执行以字符串方式表示的JS代码 var msg = "console.log('Hello World');"; eval(msg);//将 msg 作为 JS代码去执行 练习: 1、创建页面,通过弹框,输入一段JS代码 2、通过 eval() ,将输入的JS代码执行一次 3、递归调用 1、什么是递归 递归指的是在一个函数中,又一次的调用了自己 2、递归的实现 1、边界条件 2、递归前进 - 继续调自己 3、递归返回 - 向上返回数据 3、解决问题 1、计算某个数字的阶乘 5的阶乘 5!=5*4*3*2*1 5! = 5 * 4! 4! = 4 * 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1 /*计算 n 的阶乘*/ function f(n){ ... ... } 4、作业 已知下列数列 (菲波那切数列) 1,1,2,3,5,8,13,21,34,55,... ... 已知 第一个数为1,第二个数为1 从第三个数开始,每个数字等于前两个数之和 问题:通过一个函数,求某个位置上的数字(用递归实现) https://www.baidu.com/s?wd=佳能 https://www.baidu.com/s?wd=尼康 function test(){ console.log("Hello World"); } var result = test(); console.log(result); =========================== 输出结果: Hello World undefined [removed] var g_uname = "sanfeng.zhang"; function showName(){ var uname = "wuji.zhang"; console.log(uname);//wuji.zhang } [removed] function test(){ console.log(num); // 打印 :undefined var num = 15; } 演变成: function test{ var num; // 先声明,但不赋值(自动完成) console.log(num); // 打印 :undefined num=15;// 只赋值,不声明 } 推荐写法: function test(){ var num = 15; console.log(num); // 打印 :15 } *********************************************** 作业: 1,1,2,3,5,8,13,21,34,55,... ... 已知: 该数列中前两个数都是 1 从第三个数开始,每个数字等于前两个数的和 /*通过 f 函数,计算第 n 个数字是多少*/ function f(n){ } f(5) : 求第五个数字是多少 ================================================= 1、分支(选择)结构 1、流程控制结构 1、顺序结构 - 自顶向下的执行 2、分支结构 - 有条件的选择某一段代码去执行 3、循环结构 - 有条件的选择某一段代码反复执行 程序 = 数据结构 + 算法 2、练习 编写一个收银柜台收款程序,根据商品单价,购买数量以及收款金额计算并输出应收金额和找零 数据:商品单价,购买数量,收款金额,应收金额,找零 输入数据:商品单价(price),购买数量(count),收款金额(money) 输出数据:应收金额(total),找零(change) Q : 当商品总价>=500时,享受8折优惠 3、if 结构 语法: if(条件){ 满足条件要执行的语句块 } 流程: 1、判断条件 2、如果条件为真,则执行 语句块 中的内容 3、如果条件为假,则跳过语句块去执行其他内容 注意: 1、if中的条件,最好是一个boolean的值,如果不是boolean类型,则会自动转换 以下情况,条件会自动转换为 false if(0) if(0.0) if(undefined) if(null) if("") if(NaN) if(35.5){ //真 } var num; if(num){ //假 } if("李文华真帅"){ //真 } 2、if 后的 { } 是可以被省略的,如果省略的话,只控制 if 下的第一条语句 问题:考虑异常情况,如果收款金额小于应收金额 如果 收款金额大于等于应收金额,则正常执行 否则 则给出异常提示 4、if ... else ... 结构 语法: if(条件){ 满足条件时,执行的语句块 }else{ 不满足条件时,执行的语句块 } 练习: 1、从弹框中,输入一个年份信息 2、判断该年是否为闰年,并给出提示 输入年:2009 2009年不是闰年 输入年:2012 2012年是闰年 5、if ... else if ... 结构 语法: if(条件1){ //满足条件1时,要执行的语句块 }else if(条件2){ //满足条件2时,要执行的语句块 }else if(条件n){ //满足条件n时,要执行的语句块 }else{ //以上条件都不满足时,要执行的语句块 } 练习: 从弹框中,分三次录入 年,月,日 判断该日是该年的第多少天 提示: 1,3,5,7,8,10,12 :每月31天 4,6,9,11 :每月30天 2 :闰年29天,平年28天 2017年8月21日 : 31+29+31+30+31+30+31+21 6、switch ... case Q : 从弹框中录入 1-7 中的任一一个数字 录入 1 :输出 :今天吃红烧肉 录入 2 :输出 :今天吃红烧排骨 录入 3 :输出 :今天吃红烧丸子 录入 4 :输出 :今天红烧鱼 录入 5 :输出 :今天吃烤羊腿 录入 6 :输出 :今天休息 录入 7 :输出 :今天休息 场合:等值判断 语法: switch(变量){ case 常量值1: 语句块1; break;//通过 break 结束switch的执行(可选 ) case 常量值2: 语句块2; break;//可选 default: 语句块n; break;//可选 } 练习: 1、使用 特殊的 switch 结构完成下列要求 输入年 ,月 输出 该月有多少天 1,3,5,7,8,10,12 : 31天 4,6,9,11 : 30 天 2 : 平年28天,闰年29天 ex: 年:2017 月:5 输出:31天 1、使用 特殊的 switch 结构完成下列要求 2、改版日期计算器(难度) 输入年月日,判断该日是这一年的多少天 var month = Number(prompt()); var totalDays = 0; switch(month-1){ case 11: totalDays += 30; case 10: totalDays += 31; case 9: totalDays += 30; ... ... } 2、循环结构 1、问题 1、控制台上打印一句Hello World 2、控制台上打印十句Hello World 3、控制台上打印10000句 Hello World 4、改版第3步,增加 第 ? 句 Hello World 第 1 句 Hello World 第 2 句 Hello World ... 第 10000 句 Hello World 5、改版第4步 将 Hello Word 替换成 "你好 世界" 练习: 6、打印输出 1-100之间所有数字的和 2、什么是循环结构 循环,就是一遍又一遍的执行相同或相似的代码 两个重要的要素: 1、循环条件 :循环执行的次数 2、循环操作 :循环体,要执行相同 或 相似的代码是什么 3、while 循环 1、语法 while(条件){ //循环操作 } 流程: 1、判断条件 2、如果条件为真,则执行循环操作,然后再次判断条件。当条件为假时,则退出循环结构 4、循环的流程控制语句 1、break 破坏了整个循环的执行 - 结束循环 2、continue 结束本次循环,继续执行下次循环 练习: 1、使用 continue ,打印输出 1-100之间所有偶数的和 2、让用户循环从弹框录入信息,并将信息打印在控制台上,直到用户输入 exit 为止 输入数据:sanfeng.zhang sanfeng.zhang 输入数据:wuji.zhang wuji.zhang 输入数据:exit 3、猜数字游戏 1、随机生成一个 1-100 之间的数字 Math.random() 返回 0-1 之间的小数 var r = parseInt(Math.random()*100)+1; 2、要求用户输入一个整数 若比生成的随机数大,则输出 “猜大了” 若比生成的随机数小,则输出 “猜小了” 直到用户 猜对为止 3、如果用户输入exit ,也可以退出游戏 3、作业 用户从弹框中输入年,月,日,判断该日是星期几? 1900年1月1日 是星期1 推荐思路: 从1900年1月1日 到 输入的年月日 共有多少天求出来,与 7 取余 1、通过一个循环计算从1900年 到输入年前一年有多少天? 2、再从1月,到输入月份的前一个月共有多少天? 3、再累加 输入的日 4、用整体结果 与7取余,给出提示 附加作业: 将 输入的月份的日历打印输出 2017年8月 日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 while(i > 0){ switch(i){ case 1: console.log(); break; case 2: console.log(); continue; // 作用在 while } } switch(i){ case 1: console.log(); continue; // 错误 } =================================================== 1、循环结构 1、do ... while() do{ 循环操作 }while(循环条件); do...while VS while 1、while 先判断条件,再执行循环操作 如果条件不满足,循环一次都不执行 2、do ... while 先执行循环操作,再判断循环条件 即便条件不满足,也要执行一次循环操作 练习: 将猜数字的游戏,改版成 do ... while 循环版本 2、for() 循环 1、语法 for(表达式1;表达式2;表达式3){ //循环操作 } 表达式1:循环条件的声明 表达式2:循环条件的判断(boolean) 表达式3:更新循环条件(i++,... ...) 执行过程: 1、计算表达式1的值 2、计算表达式2的值,如果结果为true则执行循环体,否则退出 3、执行循环体 4、执行表达式3 5、再计算表达式2的值,为true执行循环体,否则退出 while do...while 和 for 的使用场合: 1、while 和 do...while 适合使用在不确定循环次数的循环下 2、for 适合使用在确定循环次数时使用 练习: 1、定义一个函数,打印乘法口诀表中的任一一行 输入要打印的行数:5 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 2、定义一个函数,打印 1/1+1/3+1/5+...1/999的和 3、定义一个函数,判断指定的数字是否为素数 素数:只能被1 和 它本身整除的数字 输入一个数字:7 是素数 循环条件:从 2 开始 ,到输入的数字-1结束 循环操作:判断输入的数字能否被循环条件整除,能被整除,则不是素数,不能被整除,是素数 4、有一对兔子,从出生后的第3个月起都生一对兔子,小兔子长到第3个月后每个月又生一对兔子,假如兔子都不死的话,打印输出 前10个月,每个月有多少对兔子 n1 n2 n1 n2 n1 n2 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 2、三个表达式的特殊用法 1、for(;;) 三个表达式可以任意的省略,不推荐省略 2、for 第一个 和 第三个表达式的多样化 for(var i=1,j=2;i=1;i++,j--){ console.log(i+"+"+j+"="+(i+j)); } 3、嵌套循环 在一个循环的内部又出现一个循环 for(var i=0;i<10;i++){ // 外层循环 for(var j=0;j<10;j++){ // 内层循环 } } 外层循环执行一次,内层循环要执行一轮 练习: 1、控制台中输出下面的图形 ****** ****** ****** ****** ****** * ** *** **** ***** * *** ***** ******* ********* 2、数组 1、什么是数组 数组,即一组数据,使用一个变量来存放多个数据 数组中的元素是按照"线性"书序来排列的,所以也可以称之为是一个 "线性表" 2、声明数组 1、声明一个空数组变量 var 数组名 = []; 2、声明数组并赋初始值 var 数组名 = [数据1,数据2,数据3,... ...]; 3、声明一个空数组变量 var 数组名 = new Array(); 4、声明一个数组并赋初始值 var 数组名 = new Array(数据1,数据2,... ...); 练习: 1、创建一个函数,分别用两种不同的方式创建数组(arr1,arr2) arr1保存 :张三丰,张翠山,张无忌 arr2保存 :金花婆婆,殷素素,赵敏 2、直接将数组打印在控制台上 3、数组是引用类型的对象 引用类型的对象,是将数据保存在 "堆" 中的 在"栈"中,会对 "堆" 中数据的地址进行引用 1、将数组赋值给其它变量时,实际赋的是数组的地址 练习: 1、创建一个数组 arr1 ,包含"张无忌","赵敏" 2、将 arr1 赋值给 arr2 3、将 arr2 的第一个元素更改为 "金花婆婆",打印输出 arr1 和 arr2 中的所有元素 2、数组在做参数的时候,传递进去的实际上是地址(按引用传递 即 按地址传递) 练习: 1、创建一个数组array,保存"张无忌","赵敏"俩元素 2、创建一个函数change,接收一个数组作为参数,在函数体内,将第一个元素更改为"金花婆婆" 3、调用change函数,并将array数组作为参数,调用完成后,打印array的值,观察结果 4、修改change函数,在函数体内,将传递进来的数组重新new一个Array("孙悟空","猪八戒") 5、重复步骤三,观察结果 3、null 表示的是让引用类型的对象不再指向任何空间.一般用于主动释放对象的空间 //让 array 指向数组的地址 var array = ["wuji.zhang","zhaomin"]; //释放 array空间,不再指向任何地址 array = null; 4、访问数组的元素 赋值,取值,都是使用 下标 来完成的 1、为数组的元素赋值 数组名[下标] = 值; var array = ["张无忌","赵敏"]; array[1] = "周芷若"; array[2] = "小昭";//增加一个新元素,在第3个位置处 array[5] = "灭绝师太"; 2、获取数组中的值 数组名[下标]; 3、length属性 作用:获取数组的长度(数组中元素的个数) 1、允许将数组的length属性值设置为0,来完成数组元素的清空操作 2、配合循环 做数组的循环遍历操作 var array = ["张无忌","赵敏"]; 输出: 第1名 :张无忌 第2名 :赵敏 for(var i=0;i"sanfeng.zhang"]; 用字符串做下标,就是关联数组 var array = []; //声明一个空数组 array["西游记"] = "古代神话故事"; array["红楼梦"] = ["贾宝玉","林黛玉","刘姥姥"]; Q : array.length 注意: 1、关联数组是不算做数组内容的,不记录到 length 中 2、关联数组只能通过 字符串 做下标取值 3、允许通过 for...in 来循环遍历关联数组的字符串下标(也能遍历出内容的数字下标) 3、冒泡排序 [23,9,78,6,45] -> [6,9,23,45,78] 冒泡排序:车轮战,两两比较,小的靠前 特点: 1、轮数 :共比较了 length - 1 轮 2、每轮中比较的次数 :随着轮数的增加,次数反而减少 代码: 双层循环表示整个排序的过程 1、外层循环 :控制比较的轮数,从1开始,到length-1(能取到)结束 2、内层循环 :控制每轮中比较的次数,并且也要表示参与比较的元素的下标,从0开始,到 length-1-i(轮数变量) [23,9,78,6,45] 共5个元素 外层:从 1 开始,到 4 结束 内层: 第一轮 第一次:从 0 开始 ,到 3 结束 第二轮 第一次:从 0 开始 ,到 2 结束 ... ... 2、数组的常用方法 1、toString() 将一个数组转换为字符串 语法:var str = 数组对象.toString(); 2、join() 作用:将数组中的元素通过指定的分隔符连接到一起,并返回连接后的字符串 语法:var str = 数组对象.join("&"); 练习:(10分钟) 1、使用数组实现由 * 组成的三角形 直角三角形,等腰三角形 * ** *** **** ***** 2、使用数组实现 九九乘法表 3、连接数组 函数:concat() 作用:拼接两个或更多的数组,并返回拼接后的结果 语法:var result=arr1.concat(arr2,arr3,arr4); 注意: 1、concat不会改变现有数组,而是返回拼接后的 2、每个参数不一定非是数组,也可以是普通的数据 练习: 1、声明两个全局数组,分别保存一些国家的名称 数组1:选中的国家 sel = ["中国","美国","俄罗斯","日本"]; 数组2:备选国家 unsel=["朝鲜","越南","老挝","柬埔寨"]; 2、将 备选国家 全部移入到 入选国家中,打印数据 结果: sel = ["中国","美国","俄罗斯","日本","朝鲜","越南","老挝","柬埔寨"]; unsel=[]; 4、获取子数组 函数:slice() 作用:从指定数组中,截取几个连续的元素组成的新数组 语法:arr.slice(start,[end]); start:从哪个下标处开始截取,取值为正,从前向后取,取值为负,从后向前算位置。 0 1 2 3 var arr=["中国","美国","日本","英国"]; -4 -3 -2 -1 end : 指定结束处的下标(不包含),该参数可以省略,如果省略的话,就是从start一直截取到结束 注意: 1、该函数不会影响现有数组,会返回全新的数组 练习: var arr=["中国","美国","日本","英国"]; 取出 美国 和 日本 组成的一个子数组 5、修改数组 函数:splice() 作用:允许从指定数组中,删除一部分元素,同时再添加另一部分元素 语法: arr.splice(start,count,e1,e2,... ...); start:指定添加或删除元素的起始位置/下标 count:要删除的元素个数,取值为0表示不删除 e1,e2,... ... : 要增加的新元素,允许多个 返回值:返回一个由删除元素所组成的数组 注意:splice 会改变现有数组 练习: 在 sel 和 unsel 的基础上完成下列操作 1、从备选国家中(unsel),选择一个国家移入到 选中的国家(sel) 推荐步骤: 1、用户输入 :越南 从 unsel 中将越南移除 再将 越南 sel 的末尾处 2、用户输入 :墨西哥 提示:国家不存在 6、数组的反转 作用:颠倒数组中元素的顺序 语法:arr.reverse(); 注意:该函数会改变当前数组的内容 练习: 1、声明一个整数数组 2、倒序打印输出内容(使用reverse()) 7、数组排序 函数:sort(); 语法:arr.sort(排序函数); 作用:默认情况下,按照元素的Unicode码大小按升序排列 特殊:允许自己指定排序函数,从而实现对数字的升序和降序的排列 语法:arr.sort(排序函数); ex: var arr = [12,6,4,72,115,89]; //排序函数(升序) function sortAsc(a,b){ return a-b; } arr.sort(sortAsc); 原理: 1、指定排序函数 如 sortAsc,定义 两个参数,如 a 和 b。数组会自动传递数据到 sortAsc 里面去,如果返回值是>0的数,则交换两个数的位置,否则不变 使用匿名函数完成排序: arr.sort(function(a,b){return a-b;}); 练习: 1、声明一个整数数组,随意定义数字 2、页面上添加两个按钮,一个"升序"按钮,一个"降序"按钮 3、点击 升序 按钮时,数组按升序排序,并打印 4、点击 降序 按钮时,数组按降序排序,并打印 8、进出栈操作 JS是按照标准的"栈式操作"访问数组的 所有的"栈式操作"的特点都是"后进先出" "栈式操作"讲究的"入栈"和"出栈" 1、push() 入栈,在栈顶(数组的尾部)添加指定的元素,并返回新数组的长度 var arr = [10,20,30]; //向栈顶增加新数据 40 var len = arr.push(40); //len 保存的是 40 入栈后 arr 的长度,值是4 2、pop() 出栈,删除并返回栈顶的(数组尾部)元素 var arr = [10,20,30]; var r1 = arr.pop();//arr = [10,20] var r2 = arr.pop();//arr = [10] ============================== arr : r1 : 30 r2 : 20 3、shift() 删除数组头部的(第一个)元素并返回 var arr = [10,20,30]; var r1 = arr.shift(); ============================ arr : [20,30] r1 : 10 4、unshift() 作用:在数组的头部(第一个)元素位置处,增加新元素 var arr = [10,20,30]; arr.unshift(40); arr : [40,10,20,30] 3、二维数组 1、什么是二维数组 一个数组中的元素又是一个数组,也可以称之为:数组的数组 2、创建二维数组 var names=[ ["孙悟空","猪八戒","沙悟净"], ["潘金莲","西门庆","武大郎"], ["贾宝玉","刘姥姥","林黛玉"], ["貂蝉","貂蝉","貂蝉"] ]; //获取猪八戒 console.log(names[0][1]); //获取林黛玉 console.log(names[2][2]); 4、作业 1、通过 进出栈 操作,完成 十进制对二进制的转换 1、创建一个函数 decode2bin,接收一个十进制的数字做参数 2、函数体中,将参数 拆成二进制数字,保存在一个数组中 3、将数组的元素使用""连接,并返回 十进制 转 二进制 :除2取余法 num : 5 num % 2 : 结果为 1 num = parseInt(num / 2) : 结果 2 num % 2 : 结果为 0 num = parseInt(num / 2) : 结果 1 num % 2 : 结果为 1 num = parseInt(num / 2) : 结果 0 结果为 0 时则不用再继续 %2 2、根据省份信息,查询城市列表 1、创建一个全局数组,保存几个省份名称 2、创建一个全局二维数组,保存不同省份中的城市信息(数据要与省份数组中的数据对应的上) 3、创建一个函数,接收一个省份名称做参数,打印该省份中对应的所有的城市信息

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧