js中的变量输出

 
[使用JS的三种方式]
1、 在HTML标签中,直接内嵌JS(并不提倡使用):
<button onclick="alert('你真点啊!')">有本事点我呀!</button>
>>> 不符合W3C关于内容与行为分离的要求!!!
 
2、在HTML页面中,使用<script></script>包裹JS代码:
<script type="text/javascript">
JS代码
</script>
>>> Script标签可以放到页面的任何位置。
 
3、引入外部的JS文件:
<script language="JavaScript" src="js/01.js"></script>
 
[注意事项]
① <script></script>可以嵌入到页面的任意位置。但是,位置的不同会导致JS代码的执行顺序不同;
比如: <script></script> 放到<body>前面,则JS代码会在页面加载之前就执行;
 
② 引入外部的JS代码,<script></script>必须是成对出现的标签。而且,标签中不能再有任何的JS代码。
 
 
【JS中的变量】
1、JS中变量声明的写法:
var num = 10; // 使用var声明的变量,属于局部变量,只在当前作用域内有效;
num = 10; // 不用var声明的变量,默认为全局变量,在整个JS文件中都有效;
var x=8,y,z=10; // 使用一行语句,同时声明多个变量。 上式中,y属于已声明,但是未赋值状态, 结果为undefined;
 
[声明变量的注意事项]
① JS中所有变量的声明,均使用var关键字。 变量具体是什么数据类型,取决于给变量赋值的类型;
 
② JS中同一个变量,可以在多次不同赋值时,修改变量的数据类型;
var a = 10; // 从初始声明是,a属于整数型;
a = "haha"; // 重复赋值时,整数型的a被修改为字符串类型;
 
③ 变量可以使用var声明,也可以不使用var声明。
[区别] 使用var声明为局部变量,不使用var声明为全局变量;
 
④ 只用var声明,但是不赋值。 结果为undefined;
例如: var a; // a为undefined。
但是,如果不声明也不赋值的a,直接使用会报错;
 
⑤ 同一变量名,可以多次使用var声明。 但是,后面的var并没有任何卵用。 第二次在使用var声明时,只会被理解为普通的赋值操作。
 
2、 变量名的命名要求:
① 变量名,只能有字母、数字、下划线组成;
② 开头不能是数字;
③ 变量名区分大小写,大写字母与小写字母为不同变量;
 
3、 变量名的命名规范:
① 要符合小驼峰法则(骆驼命名法):
首字母小写,之后每个单词的首字母大写;
myNameIsJiangHao √
② 或者使用匈牙利命名法:
所有字母小写,单词之间用_分隔;
my_name_is_jiang_hao √
③ mynameisjianghao × 能用,但是不规范。
 
4、 JS中的数据类型:
Undefined: 未定义。 已经使用var声明的变量,但是没有赋值。 var a;
Null: 表示空的引用。
Boolean: 布尔类型。表示真假,只有两个值: true/flase
Number: 数值类型。可以是正数,也可以是小数;
String: 字符串类型。用""或''包裹的内容,称为字符串;
Object: 对象类型,后续讲解。。。
 
5、 【常用的数值函数】
① isNaN():判断一个变量或常量,是否是NaN(not a num 非数值);
使用isNaN()判断时,会尝试使用Number()函数进行转换,如果最终结果能够转为数字,则不是NaN,结果为false。
 
② Number()函数: 将其他类型的数据,尝试转为数值型;
  [字符串类型]
>>> 字符串为纯数值字符串,会转为对应的数字; "111"->111
>>> 字符串为空字符串,会转为0; ""->0
>>> 字符串包含任何其他字符时,都不能转; "1a"->NaN
  [Boolean类型]
true->1 false->0
  [Null/Undefined]
Null->0 Undefined->NaN
  [Object]
*(后续讲解)
 
③ ParseInt(): 将字符串转为整数类型;
>>> 纯数值字符串,能转。
"12"->12; "12.9"->12(小数转化时,直接抹掉小数点,不进行四舍五入)
>>> 空字符串,不能转。 ""->NaN
>>> 包含其他字符的字符串 ,会截取第一个非数值字符串前的数字部分;
"123a456"->123; "a123b456"->NaN
>>> ParseInt()只能转字符串,转其他类型,全是NaN。
 
[Number函数与ParseInt函数的区别]
1. Number函数可以转各种数据类型,ParseInt函数只能转字符串;
2. 两者在转字符串时,结果不完全相同。(详见上面解释)
 
④ ParseFloat:将字符串转为数值型;
转换规则与ParseInt相同,只是如果有小数,则保留小数点;如果没有小数,则依然是整数;
"12.5" -> 12.5; "12"->12
 
⑤ typeof: 检测变量的数据类型:
字符串->String 数值->Number true/false->Boolean
未定义->Undefined 对象/NUll->object 函数->function
 
var num = 11;
alert(typeof(num));
 
 
[JS中常用的输入输入语句]
 
1. document.write(); 将()中的内容,打印输出到留言器屏幕上;
 
使用时需注意:除变量/常量外的所有内容,必须放到""中。变量和常量必须放到""外面;
如果同时又变量和字符串,必须用+链接;
eg: document.write("左手中的纸牌"+left+"<br/>");
 
2. alert(); 使用弹窗输出;
弹窗警告,()中的内容与上述要求相同。
 
3. promt(); 弹窗输入;
接受两部分参数:
① 输入框上面的提示内容,可选;
② 输入框里面的默认信息,可选;
当只写一部分时,表示输入框上面的提示内容;
 
可以定义变量,接收输入的内容。 点击确定按钮,变量将被赋值为输入的内容; 点击取消按钮,变量将被赋值为null;
 
输入内容时,默认接收的数据类型都是字符串!!!!!
 
 
 

js中的运算符

 
1.算术运算(单目运算符)
+ 、-、*、 /、 %(取余)、++(自增) 、--(自减)
 
+:有两种作用,将链接字符串/加法运算。
当+两边全为数字时,进行加法运算;
当+两边任意一边为字符串时,起链接字符串的作用,链接之后的结果为字符串。
除+外,其余符号运算时,会先尝试将左右变量用Number函数转化为数字,在运算。
 
 
/:结果会保留小数点。
 
 
++:自增运算符,将变量在原有的基础上+1;
--:自减运算符,将变量在原有的基础上-1;
【a++和++a的异同】
① 相同点:无论a++还是++a,运算完以后,a的值均会+1;
② 不同点:a++,先用a的值去运算,在把a+1;
++a,先把a+1,在用a+1以后的值运算。
 
 
2.赋值运算
=(赋值) += -= *= /= %=
 
+=:a+=b;相当于a=a+b,当时前者的运算效率比后者快,所以推荐使用+=的写法。
 
3.关系运算
==(等于)、===(全等)、 !=(不等)、!==(不全等) >、 <、 >=、 <=
>>> 关系运算符,运算之后的结果,只能是Boolean类型。
>>> 判断一个数字是否处于某个区间,必须用&&链接;
a<10 && a>0 对 10>a>0 错
>>> ===: 严格等于,要求不仅 类型相同,值也相同;类型不同,结果直接为false;
类型相同,再进行下一步判断。
== :等于。类型相同,与===效果一样。类型不同时,会先尝试用Number函数将两边转为数字,然后再进行判断。
但是,有个别特例,如:Null==false 错 Null==Undefined 对
4.条件运算符(多目运算)
a>b?true:false 
有两个重要符号:? 和 : 
当?前面部分,运算结果为true,执行 : 前面的代码;
当?前面部分,运算结果为false,执行 : 后面的代码;
 
冒号两边可以为数值,则整个式子可用于赋值。var a= 1<2?2:2;
冒号两边可以是代码块,将直接执行代码。1<2?alert(1):alert(2);
多目运算符可以多层嵌套。
 
5.位运算符、 逻辑运算符
 
&& (与)、||(或)、!(非)
&& 两边都成立,结果为true
|| 两边有任意一边成立,结果为true
 
6.运算符的优先级
() (最高) 
! ++ --
* / %
+ -
> < >= <=
== !=
&& (&& ||同时存在 &&高于||)
||
= += -= *= /= 最低的是赋值
 
 
 

js中的分支结构

【if-else结构】
1.结构的写法:
  if(判断条件){
  条件为true,执行if的{}
  }else{
  条件为false,执行else的{}
  }
2. 注意事项:
  ① else{}语句块可以根据情况进行省略。
  ② if和else 后面的{}可以省略,但是省略{}后,if和else后面只能跟一条语句;(所有不建议省略{})
 
【重点】
3.if的()中的判断条件,支持的情况:
  ① Boolean:true为真,false为假;
  ② String:空字符串为假,所有非空字符串为真;
  ③ Number:0为假,一切非0数字为真;
  ④ null/Undefined/NaN: 全为假;
  ⑤ Object:全为真;
 
 
 
【多重if、阶梯if结构】
1.结构写法:
  if(条件一){
  条件一成立,执行操作。
  }
  else if(条件二){
  条件不成立&&条件二成立,执行操作。
  }
  else{
 
  }
 
2.多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行。
遇到正确选项并执行完以后,直接跳出结构,不在判断后续分支。
 
 
【嵌套if结构】
1.结构写法:
 
  if(条件一){
    条件一成立
  if(条件二){
    条件一成立&&条件二成立
  }
  else{
    条件一成立&&条件二不成立
    }
  }
 
  else{
    条件一不成立
  }
2.在嵌套if结构中,如果省略{},则else结构永远属于离他最近的一个if结构。
3.嵌套结构可以多层嵌套,但是一般不推荐超过3层

JS学习一的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. js学习之变量、作用域和内存问题

    js学习之变量.作用域和内存问题 标签(空格分隔): javascript 变量 1.基本类型和引用类型: 基本类型值:Undefined, Null, Boolean, Number, String ...

  3. 【Knockout.js 学习体验之旅】(3)模板绑定

    本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  4. 【Knockout.js 学习体验之旅】(2)花式捆绑

    本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  5. 【Knockout.js 学习体验之旅】(1)ko初体验

    前言 什么,你现在还在看knockout.js?这货都已经落后主流一千年了!赶紧去学Angular.React啊,再不赶紧的话,他们也要变out了哦.身旁的90后小伙伴,嘴里还塞着山东的狗不理大蒜包, ...

  6. js学习篇1--数组

    javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...

  7. Vue.js学习笔记(2)vue-router

    vue中vue-router的使用:

  8. NODE.JS学习的常见误区及四大名著

    NODE.JS学习的常见误区及四大名著 前段时间由于不满于社区里很多人对于NODE.JS的种种误解而写了一篇文章名为: NODE.JS之我见:http://www.cnblogs.com/pugang ...

  9. Node.js学习系列总索引

    Node.js学习系列也积累了一些了,建个总索引方便相互交流学习,后面会持续更新^_^! 尽量写些和实战相关的,不讲太多大道理... Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- ...

  10. 【入门必备】最佳的 Node.js 学习教程和资料书籍

    Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...

随机推荐

  1. oAuth 认证

    这段时间公司开发项目用到oAuth2协议,现在做一下梳理. CORS即Cross Origin Resouce Share,跨域资源共享:是W3C为防止脚本攻击,而制定的安全标准之一,它云溪浏览器向跨 ...

  2. JS获取字符串长度(区分中英文)

    JS获取字符串长度(区分中英文) 中文算2个字,英文一个. function getStrLength(str) {      var cArr = str.match(/[^\x00-\xff]/i ...

  3. 测试与开发如何有效沟通,QC11(HP ALM 11)的简单使用记录

    笔者所在的项目组使用的缺陷管理工具是HP的QC11,作为测试人员,为了与开发一起跟随Bug的一生,简单的写了使用流程,这里记录一下,主要是让开发人员熟悉一下. 首先使用账户登录QC,如地址: http ...

  4. linux运维、架构之路-rsync

    1 .rsync介绍 rsync是实现全量及增量的本地或远程数据镜像同步备份的工具 rsync常用命令参数 命令参数 参数说明 -a (--archive) 归档模式,表示以递归方式传输文件,并保持所 ...

  5. 安徽省2016“京胜杯”程序设计大赛_I_恶魔A+B

    恶魔A+B Time Limit: 1000 MS Memory Limit: 65536 KB Total Submissions: 73 Accepted: 17 Description 相信大家 ...

  6. 调整ORACLE用户关闭密码有效期

    --调整ORACLE用户关闭密码有效期  ----------------------------------2013/11/12 在oracle中执行一下操作:1.查看用户的proifle是那个,一 ...

  7. Windows10系统下,彻底删除卸载MySQL

    本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...

  8. Centos 开机后,登录时无法输入密码怎么解决

    Centos 开机无法输入密码怎么解决... ========================= Q:centos启动后,输入登入账号,再输密码就输不进去了,打什么字都没有用... A:输入密码是不显 ...

  9. Sublime Text前端开发工具介绍

    Sublime Text前端开发工具介绍.. Sublime Text这款前端开发工具中的非常优秀的特性进行介绍 ------------ sublime text 3 3114 注册码 —– BEG ...

  10. 使用xorm工具,根据数据库自动生成 go 代码

    使用xorm工具,根据数据库自动生成 go 代码 引入 使用 golang 操作数据库的同学都会遇到一个问题 -- 根据数据表结构创建对应的 struct 模型.因为 golang 的使用首字母控制可 ...