【学习笔记】JavaScript基础(一)

【学习过程遇到疑问和延伸阅读】

1.document.write()的深入理解
write()方法可向文档写入HTML表达式或JavaScript代码。
可使用document.write()向输出流写文本或者HTML

延伸阅读《js中document.write的那点事》
http://www.cnblogs.com/dh616854836/articles/2140349.html

 

2.编程语言与脚本语言的区别

概念的相对性:标记语言vs编程语言;编译型语言vs解释型语言(脚本语言)
而JavaScript是编程语言,是解释型语言(脚本语言)。

延伸阅读《编程语言,标记语言,脚本语言分别有哪些?区别是什么?》
http://www.cnblogs.com/lsgsanxiao/p/5126170.html

3.Sublime text配置JS运行环境,工具Tools->build- new build system
可以进行构建功能的配置,配置后就可以不离开编辑器直接编译当前正在编写的代码,
并把打印输出到输出面板。
配置了Node(Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境 )后,
就可以用ctrl+B 运行JS文件了。

4.编译型语言的程序源文件运行“四部曲”。
每个程序提交到计算机运行,都包含着如下所谓的“四步曲”:
(1)编辑(把程序代码输入,交给计算机)或编写源代码。
(2)编译(成目标程序文件.obj)。编译就是把高级语言变成计算机可以识别的2进制语言,
计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。
主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
(3)链接(成可执行程序文件.exe)。
链接是将编译产生的.obj文件和系统库连接装配成一个可以执行的程序。
由于在实际操作中可以直接点击Build从源程序产生可执行程序,可能有人就会置疑:
为何要将源程序翻译成可执行文件的过程分为编译和链接两个独立的步骤,不是多此一举吗?
之所以这样做,主要是因为:在一个较大的复杂项目中,有很多人共同完成一个项目(每个人可能承担其中一部分模块),
其中有的模块可能是用汇编语言写的,有的模块可能是用VC写的,有的模块可能是用VB写的,
有的模块可能是购买(不是源程序模块而是目标代码)或已有的标准库模块,
因此,各类源程序都需要先各自编译成目标程序文件(2进行机器指令代码),再通过链接程序将这些目标程序文件连接装配成可执行文件。
(4)运行(可执行程序文件)。
上述四个步骤中,其中第一步的编辑工作是最繁杂而又必须细致地由人工在计算机上来完成,
其余几个步骤则相对简单,基本上由计算机来自动完成。

5.程序流程图
是程序分析中最基本,最重要的分析技术。最基本的工具。
通过结构清晰,逻辑性强的流程图,能更好地理解程序执行的顺序。程序流程图是人们对解决问题的方法、思路或算法的一种描述。

延伸阅读《编程基本功训练:流程图画法及练习》
http://blog.csdn.net/sxhelijian/article/details/8222858

 

【新概念,重要概念】
编译,编程语言,解释型语言

 

【实操知识点脉络】

1.什么是JavaScript
1.1JavaScript是什么
html内容,css样式,JavaScript动作
程序可以计算,可以接受用户交互,做数据处理,
可以被浏览器执行

Java与JavaScript的区别
Java需要编译,JavaScript是解释型语言

JavaScript源代码放在HTML里头,
让浏览器运行

1.2页面中JavaScript代码
如何在页面加入?
<script></script>
可以放在head(函数的定义,变量的定义)或者body(做实际的动作)里

JavaScript一条语句后必须以分号结尾
<script>document.write("Hello World!");</script>-document做write动作
document是对象(浏览器的页面)
点.是运算符号
对象.动作(表示点左边的对象做点右边的动作)

需要write动作的参数,
参数是一句话,程序语言是用字符串,用双引号引起来。

1.3桌面上的JavaScript
远超过浏览器本身,除了可以在浏览器运行外,也可以在桌面端运行,
需要其他软件的帮助。

Node.js下载
启动Node,运行js示例文件的代码,保存为server.js,文件里面的代码,可以建立了Web服务器。
server.js所在的目录的HTML文件,就可以通过浏览器访问(js文件中的本机地址和端口号)

Sublime text中关于JavaScript的工具,
比如Syntax的高亮.


在下载安装Node.js后,还不能在Sublime text中直接运行JavaScript,需要配置js的运行环境
需要去tools,build system,new system,
然后在文件中,输入这么一段文字,在windows下
{
"cmd": ["node", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.javascript"
}
然后保存,名字为node.sublime-build
最终会在tools-build system下会有个node。

现在回到server.js中,在Tools-build system下选择node之后,
按快捷键ctrl+B,编译运行,然后server就启动了
(在编译时出现了错误提示, [WinError 2] 系统找不到指定的文件。
最终找出原因是server.js的目录路径下,有个目录使用了中文命名,修改为英文后,编译成功)

1.4事件响应代码
另一种加入JS代码的方式,
利用HTML的标记的事件(动作)属性,
把JS代码作为属性值的方式。
如:body 的onLoad的载入事件属性。
<body οnlοad="alert('hello!')">

1.5变量variable
当需要保存数据的时候,可以使用变量。
var hello = "Hello"; //等号是赋值运算,给变量一个初值;
document.write(hello);
<script>document.write("<h1>Hello World!</h1>");</script>

变量命名的规则:
数字,字母,下划线_ 的组合,
数字不能作为第一个字符
不能使用JavaScript的关键字和保留字

变量是弱类型:变量无特定的类型,定义变量时只用var运算符。

可以将它初始化为任意值,也可以随时改变变量所存数据的类型。

2.计算
2.1赋值运算
变量本身可以没有类型
数值,字符串,布尔值
2.2字符串连接运算
2.3四则运算
%运算,取模,取除法结果里的余数,实际应用判断奇偶数
圆括号
在JavaScript中,不太区分整数和浮点数
2.4加1,减1运算(推荐单独使用)
result++;++result;

2.5比较
2.5.1数值比较
==
!=
<=
2.5.2字符串比较(跟字符在计算机里的排序有关)
==
>=
<=

3判断

3.1

if(关系运算)

{
满足条件的处理
}
浏览器先执行了js后,再解释HTML。
document.write是把字符串写到html

3.2else{}

3.3嵌套的if语句
多个else的情况下,else是与最近的if搭配起来

建议
-在if和else后面永远放一对{}
-哪怕后面只有一句语句
if()
{ }
else if()
{ }
else
{}

3.4switch-case多路分支
每一个case要有break,否则不会跳出switch,
继续往下面的case执行
实践例子,百分制分数转换为A-F的等级

3.5逻辑运算(true和false之间的运算)
运算符 && || !
真值表

3.6优先级
-所有的逻辑运算符的优先级都低于关系运算符
-!> && >||

3.7条件运算符(三元运算)
?:
<exp>?<v1>:<v2>
等价于
if(exp)
{ v1 }
else
{ v2 }

 

4循环
4.1while语句
让同一段代码可以重复执行很多次,这种程序结构
while(exp)
{
重复执行的代码
}

在分析别人程序的时候,可以把值设小减少循环次数。
来理解程序的用意。

4.2循环的例子
例子:求最大公约数
描述算法:前置条件-一步步的步骤-终止条件

4.3无限循环
循环的条件永远满足,结果陷入在这个循环里面

4.4循环嵌套
外面的循环的每一步,里面的循环需要不满足条件跳出,否则执行里面的循环。

4.5do-while循环
do{
}while(condition)

与while循环的区别:
首先进入循环体执行一次,而不先判断条件。

例子:reverse number

 

4.6for循环
for(init;condition;step){
}
应用:计数循环
当循环的次数预先知道,或者需要有递进的动作时,

往往选择for循环。

for循环嵌套例子

4.7无限循环的写法
while(true){}
do{}while(true)
for(;;){}

4.8不同循环的比较
-三种循环(while、do和for)的功能是等价的
-如果需要循环至少执行一次,do通常是更好的选择
-当循环的次数是固定的,或者很容易计算得到的时候,选择for循环

4.9如何选择循环
-如果有固定次数,用for
-如果必须执行一次,用do-while
-其他情况用while

4.10break与continue
break:跳出循环
continue:跳过当前循环步,进入循环的下一轮
从流程图可以清晰地看出区别来。

 

转载于:https://www.cnblogs.com/iccy/p/6822724.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js操纵cookie技术

<% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>图片浏览</title> <script typ…

java none怎么用tomcat_使用tomcat做java中间件

tomcat是一个老牌的中间件了&#xff0c;从我从业到现在时不时都会遇到它&#xff0c;方便、灵活、性能一般是我对它的使用经验总结。配置注意 &#xff1a; tomcat 7 和 6 有很大差别&#xff0c;server.xml catalina.sh 配置文件不能通用设置tomcat7 使用jdk1.7export JAVA_H…

早期访问中带有NetBeans的Oracle公共云Java服务

谁期望发生这种情况&#xff1a;Oracle正在开发公共云产品&#xff0c;并且即将开始正式启动的迹象已经出现。 在正式宣布之后将近一年&#xff0c;我被邀请加入所谓的“抢先体验”计划&#xff0c;以试驾新服务并提供反馈。 多亏负责产品的经理Reza Shafii &#xff0c;我才可…

MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数.如何获得 第二个sql语句的总记录条数? 则是&#xff0c;如下&#xff1a;    select count(*) from(SELECT count(*) F…

python CS游戏1--角色创建,武器购买

#codingutf-8 import random 本文字主要目的是随机创建一个角色&#xff0c;并且武器是随机产生的&#xff0c;自带系统给的费用10000,10000元钱可以购买武器&#xff0c;购买武器以后&#xff0c;钱会减少&#xff0c;直到不足提示无法购买 dir{"AK47":2000,"…

App Engine中的Google Services身份验证,第2部分

在本教程的第一部分中&#xff0c; 我描述了如何使用OAuth进行Google API服务的访问/身份验证。 不幸的是&#xff0c;正如我稍后发现的那样&#xff0c;我使用的方法是OAuth 1.0&#xff0c;显然现在Google正式弃用了OAuth 1.0&#xff0c;改用OAuth 2.0版本。 显然&#xff0…

字符串常用操作

1 常用&#xff1a;分割、长度、索引、切片2 r (1,2,3,4,5)#只读列表元组3 name "liangml"4 strip5 username input("user:")6 if username.strip() "liangml":#strip可以将输入前后的空格都换掉7 print("welcome")8 9 split …

java 保存bufferedimage_java - 如何将BufferedImage保存为Fi

答案在于Java Documentation的编写/保存图像教程。SaveImage.java类提供以下保存图像的方法&#xff1a;static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException该教程解释了这一点BufferedImage类实现RenderedImage接口。所以它…

MarkDownPad2 注册码

注册信息 邮箱地址&#xff1a; Soar360live.com 授权秘钥&#xff1a;GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW8HUpTtLA2a5/sQytX…

[51nod1297]管理二叉树

一个初始为空的二叉搜索树T&#xff0c;以及1到N的一个排列P: {a1, a2, ..., aN}。我们向这个二叉搜索树T添加这些数&#xff0c;从a1开始, 接下来是 a2, ...&#xff0c; 以aN结束。在每一个添加操作后&#xff0c;输出T上每对节点之间的距离之和。例如&#xff1a;4 7 3 1 8 …

Java Swing中的聊天气泡

本文将向您解释“如何在Java swing应用程序中绘制聊天气泡&#xff1f;” 聊天气泡与呼出气泡或思想气泡相同。 今天&#xff0c;大多数聊天应用程序都以这种格式显示转换&#xff0c;因此本文将帮助您在用Java swing创建的桌面应用程序中进行相同的操作。 以下课程用于绘制第一…

java内存模型按照线程隔离性_深入理解Java多线程与并发框(第③篇)——Java内存模型与原子性、可见性、有序性...

一、Java内存模型Java Memory Modle&#xff0c;简称 JMM&#xff0c;中文名称 Java内存模型&#xff0c;它是一个抽象的概念&#xff0c;用来描述或者规范访问内存变量的方式。因为各中计算机的操作系统和硬件不同&#xff0c;方式机制也可能不同&#xff0c;Java内存模型用于…

PHP通过PDO连接Microsoft Access数据库

1连接到access数据库 $db new PDO("odbc:Driver{Microsoft Access Driver (*.mdb, *.accdb)}; dbq" .realpath("yourfilepath\# ddsbbn3A02.Mdb")) or die("Connect Error"); realpath函数用来规范化绝对路径 2修改数据库中BM_sitelink表中字段…

ZK实际应用:样式和布局

在之前的ZK in Action帖子中&#xff0c;我们使用ZK MVVM实现了CRUD功能 。 我们还快速浏览了一些样式代码&#xff0c;可能需要更多的解释。 在本文中&#xff0c;我们将讨论如何在ZK小部件上附加新CSS样式规则&#xff0c;以及如何覆盖现有样式。 我们还将介绍ZK中UI布局的一…

java面向对象的三大特征是6_Java面向对象的三大特征

面向对象的本质&#xff1a;以类的方式组织代码&#xff0c;以对象的方式组织数据。面向对象三大特性&#xff1a;封装 继承 多态封装&#xff1a;概念&#xff1a;隐藏对象内部的复杂性&#xff0c;只对外公开简单的接口。便于外界调用&#xff0c;从而提高系统的可扩展性&…

Tornado(一)

Tornado 特点 Tornado是一个用Python写的相对简单的、不设障碍的Web服务器架构&#xff0c;用以处理上万的同时的连接口&#xff0c;让实时的Web服务通畅起来。虽然跟现在的一些用Python写的Web架构相似&#xff0c;比如Django&#xff0c;但Tornado更注重速度&#xff0c;能够…

Android下Opengl ES实现单屏幕双眼显示

http://blog.csdn.net/u011371324/article/details/68946779 默认情况下&#xff0c;Opengl ES使用系统提供的帧缓冲区作为绘图表面&#xff0c;一般情况下&#xff0c;如果只在屏幕的表面绘图的话&#xff0c;系统提供的默认帧缓冲区很高效&#xff0c;但是很多应用程序需要渲…

Oracle Service Bus –线程阻塞案例研究

本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会&#xff0c;我强烈建议您学习并正确理解以下分析方法。 与过早的中间件&#xff08;Weblogic&#xff09;重…

java 可以重载等于号码_Java面试之Java基础4——重载与重写的区别

目录重载与重写的概念重载与重写的区别重载与重写的总结构造器是否能被重写override为什么函数不能根据返回类型来区分重载重载与重写的概念重载&#xff1a;同样一个方法可以根据输入参数列表的不同&#xff0c;做出不同的处理。普通方法和构造器方法都能够重载。方法重载&…

二维数组、多维数组

二维数组&#xff1a; 定义二维数组 int[,] myArray new int[几个一维数组,数组中的个数]; 数组可以具有多个维度。例如&#xff0c;下列声明创建一个四行两列的二维数组(可以理解为4个1维数组&#xff0c;数组中包含2个元素)&#xff1a; int[,] myArray new int[4,2]; int[…