1   js中的变量和输入输出

{使用js的三种方式}

1 在html标签中直接内嵌js(并不提倡使用);

<button onclick="alert('小婊砸你真点啊!')">有本事点我啊</button>
》》》不符合W3C内容与行为分离的要求

2 在html页面中使用<script></script>包裹js代码;
<script type="text/javascript">
js代码
</script>
》》》<script></script>标签可以放到页面的任何位置


3 引入外部
的JS文件,使用<script language="JavaScript" src="js/01.js"></script>;

【注意】

①script可以嵌入到界面的任意位置,但是未知的不同会导致JS代码的执行顺序不同,
比如script标签放在body前面,则JS代码
会在页面加载之前就执行;

②:引入外面的JS代码,<script></script>必须是成对出现的标签,而且标签中不能再有任何的JS代码

[js中的变量]

1.

JS中变量声明的写法

var num="10";//使用var声明的变量属于局部变量,只在当前作用域内有效;
num = 10;//不用var声明的变量,默认为全局变量,在整个JS文件中都有效;

使用一行语句,同时声明多个变量,上式中。y属于已声明,但是未赋值状态。结果为undefined

举个栗子

var num
alert(num);
var x=8,y="haha";z="哈哈哈";
x= "aaa";
alert(x);
alert(y);
alert(z);

2

[声明变量的注意事项]

①:JS中所有变量的声明均使用var关键字。变量具体是什么数字类型,取决于给变量赋值的类型,

②:JS中同一个变量可以再多次不同的赋值时。修改变量的数据类型; var a =10; // 从初始声明是,a属于整数值; a = "haha"; // 重复赋值时,整数型的a被修改为字符串类型;

③ 变量可以使用var声明,也可以不使用var声明,使用var声明是局部变量,不使用var声明的属于全局变量;

④ 只用var声明,但是不赋值,结果为undefined 例如var a; //a为undefined ,但是如果不赋值, 也不声明的a,直接使用会报错;

⑤ 同一个变量名可以多次使用var声明,但是后面的var并没有任何蛋用,第二次在使用var声明是,只会被理解为普通的赋值操作

3[变量名的命名要求]

①变量名只能有字母数字下划线组成,
②开头不能是数字
③变量名区分大小写,大写字母与小写字母为不同变量;

4【变量名的命名规范】

① 要符合小驼峰法则:(骆驼命名法)首字母小写,之后每个单词的首字母大写;
myNameIsJiangHao √
②或者匈牙利命名法:所有字母小写,,单机之间用_分割
my_name_is_jiang_hao √
③mynameisjianghao × 能用,但是不规范;

5[JS中的数据类型]

①:Undefined:未定义,已经使用var声明的变量,但是没有赋值的情况,var a;
②:Null:表示空的引用,
③:Boolean:布尔类型,表示真假,只有两个值:true/flase
④;Number:数值类型,可以是正数,也可以是小数;
⑤:String:字符串类型,用""或者''包裹的内容,称为字符串;
⑥:Object:对象类型,后续讲解。。。

6【常用的数值函数】
①isNaN():判断一个变量或常量。是否是NaN(not a num 非数值);
使用isNaN判断时,会尝试使用Number()函数进行转换。如果最终结果能够转化为数字。则不是NaN,结果为false;
② number()函数,将其他类型的数据,尝试转为数值型;
[字符串类型]
》》》字符串为纯数值字符串,会转为对应的数字;“111”->111
》》》字符串为空字符串,会转为0; “”->0
》》》字符串包含任何其他字符时;都不能转 "11a"->NaN
[Boolean类型]
true->1 false->0
[Null/Underfined]
null->0 Undefined-NaN
[Object]
(后续讲解)
③:parseInt();将字符串转为整数类型;
》》》纯数值字符串,能转,"12"->12; "12.9"->12(小数转化是直接抹掉小数点,不进行四舍五入)
》》》空字符串,不能转。""->NaN
》》》包含其他字符的字符串,会截取第一个非数值字符前的数字部分
"123a456->123" a123b456->NaN
》》》parseInt()只能转字符串,转其它类型全是NaN,

举个栗子

var num=111;

alert(Number(num));

var num="111";

alert(parseInt(num))

var num=NaN;

alert(typeof(num));

[JS中常用的输入输出语句]
1.document.write();将()里面的内容打印输出到浏览器屏幕上
使用时需注意除变量常量外 的所有内容,必须放在""里面,变量和常量必须放在""外面;
 如果同时有变量和字符串,必须用+链接,
 例如:document.write("左手中的纸牌:"+left+"<br/>");
 2. alert();使用弹窗输出,
 弹窗警告,()中的内容与上述要求相同;00
 3.prompt弹窗输入,接受2部分参数,、
 ①:输入框的上面的提示内容,可选值,
 ②:输入框上面的默认信息,可选;
 当只写一部分时候,表示输入框上面的提示内容;
 可以定义变量,接受输入的内容,点击确定按钮,变量将被赋值为输入内容。点击取消按钮,变量被赋值为null;*

输入内容是,默认的数据都是字符串;

下面是我自己通过学过的知识做的一道练习题

document.write("<table style='font-weight:bold;'border='1';>");
document.write("<caption>您的展示个人信息</caption><br/>");
document.write("<tr>");
document.write("<td>姓名</td>");
document.write("<td>学号</td>") ;
document.write("<td>班级</td>") ;
document.write("<td>家庭住址</td>");
document.write("</tr>");
document.write("<tr>");
document.write("<td> 姜浩</td>") ;
document.write("<td> 123456</td>");
document.write("<td>HTML1705</td>") ;
document.write("<td>山东省烟台市</td>") ;
document.write("</tr>");
document.write("</table>");

算术运算(单目运算符)

+加 、-减、*乘、 /除、 %取余、++自增 、--自减

+:有两种作用,分别是连接字符串和加号运算,当加号两边全为数字时候,进行加法运算,当+两边有任意一边为字符串时,
起链接字符串的作用,链接之后的结果为字符串。
除+外,其余符号运算时候,会先尝试将左右变量用Number函数转化为数字
》》》 /:结果会保留小数点。
》》》 ++:自增运算符,将变量在原有基础上+1;
》》》 --:自减运算符,将变量在原有基础上-1;

举个栗子

var a=3,b,c;
b= a++ +2;//先用a运算,b=3+2 再把a+1, a=4
c= ++a +2;// 先把a+1 a=5 再用a+1以后的值运算;c=5+2
alert(a);
alert(b);
alert(c);

最后的结果总结出来的异同:

【a++】和【++a】的异同
①:相同点:不论a++还是++a运算完以后,a的值均会+1;
②:不同点:a++先用a的值去运算,再把a+1,
++a先把a+1.再用a+1以后的值去运算,

2赋值运算
= 赋值 += -= *= /= %=
+=:a+=b 相当于a=a+b。但是前者运算效率要比后者很快,所以推荐使用。a+=b写法

3关系运算
==等于、===全等、 !=不等、!==不全等、>、<、>=、<=

》》》关系运算符,运算之后的结果只能是布尔类型;
>>>判断一个数字是否处于某个区间,必须用&&;链接。这种写法是对的 a<10 && a>0 √
但是,10>a>0 ×
>>> ===:严格等于;要求不但要类型相同,值也必须相同;类型不同,结果直接为false,类型相同,在进行下一步判断;
》》》 ==: 等于。 类型相同,与===效果一样,类型不同时,会先尝试用number函数将两边转为数字,然后在进行判断,
但是有个别特例,如:Null==false × Null==undefined √

4条件运算符(多目运算)
a>b?true:false

有两个重要符号 ? 和 :
当?前面部分结果为true是,执行:前面的代码。当?前面部分运算结果为false时,执行:后面的代码!
(冒号): 两边可以为数值,则整个式子可用于赋值。
var a=1>2?3:4; 输出结果为4
alert(a);
(冒号)两边可以为代码块,直接执行代码 var a=1>2?alert(1):alert(2);
多目运算符可以多层嵌套。 var a= 1<2?alert(1):(1>0?4:5);输出结果为4

5位运算符、 逻辑运算符
&、|、~ &&与、||或、!非
&&两边都成立结果为true;
||两边有任意一边成立,结果为true;

6

运算符的优先级()最高
! ++ -- 单目运算符
* / %
+ -
> < >= <=
== !=
&& 与或同时存在时,与比或高(&&比||高)
||
= += -= *= /= 最低的是各种赋值

if else

[if-else结构]
①:结构的写法
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:全为真;

举个栗子

var num = 1
if("5"){
alert(1)
}else{
alert(2)
}

在这里“5”为非空字符串,运用String函数,所以为真,执行alret(1),所以最终结果为1.

在举一个栗子,运用两种发放解答

var num1=parseFloat(prompt("请输入一个数:"));
var num2=parseFloat(prompt("请输入一个数:"));
var num3=parseFloat(prompt("请输入一个数:"));
var sum=num1+num2+num3;
var result=num1>50||num2>50||num3>50||sum>100?sum*0.85:sum;
alert("你需要支付:"+result+"元");

var num1=parseFloat(prompt("请输入一个数:")); var num2=parseFloat(prompt("请输入一个数:"));

var num3=parseFloat(prompt("请输入一个数:")); if(num1>50||num2>50||num3>50||num1+num2+num3>100){ alert((num1+num2+num3)*0.85); }

else{ alert(num1+num2+num3); }

那么最终的结果是一样的!!

[多重if结构、阶梯if结构]
1.结构写法
 if(条件1){
 条件一成立,执行的操作
 }else if(条件二){

 条件一不成立,并且条件二成立的操作
 }else{
 上述条件都不成立时;执行的操作
 }
 ②:多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行,
 遇到正确选项并且执行完以后;直接跳出结构,不再判断后续分支。

举个栗子

var num=5

if(num>0){

alert(1)

}else if(num<10){

alert(2)

}else{

alert(3)

}

var num=prompt("请输入成绩:")if(num>=90){alert("您的成绩是:"+"优秀")}else if(num>=80&&num<90){alert("您的成绩:"+"良");}else if(num<80&&num>=60){alert("您的成绩:"+"及格");}else { alert("您的成绩:"+"差");}

在例如:

【嵌套if结构】1
1.结构写法:
 if(条件1){
 //条件1成立,
}
 if(条件二){
 条件1成立,&&条件二成立
 }else{
条件一成立,条件二不成立
 }
 else{
 //条件1不成立
 }
 2 在嵌套if结构中,如果省略{},则else结构永远属于离他最近的if结构。
 3 嵌套借工具可以多层嵌套,但是一般不推荐超过3层;
 能用多重if结构的,一般不推荐使用嵌套if

举个栗子

var num1=prompt("输入一个数")
var num2=prompt("输入一个数")
var num3=prompt("输入一个数")
if(num1>num2){
if(num1>num3){
alert(num1) ;
}else{
alert(num3);}
}else {
if(num2>num3){
alert(num2);
}else{
alert(num3);
}
}

一点点刚学不久的JS的更多相关文章

  1. 刚学的vue.js的单一事件管理组件通信

    第一次在博客园写的技术分享,写的不好的话各位大神多体谅,好啦进入主题 说说思路 首先 第一步,准备一个空的示例对象 var Event=new Vue(); 第二步,准备发送的数据 Event.$em ...

  2. 需要一个分页,花了一个钟写了一个,刚学js,不是很完美

    <script src="js/jquery.min.js" ></script> <script type="text/javascrip ...

  3. 学习用Node.js和Elasticsearch构建搜索引擎(6):实际项目中常用命令使用记录

    1.检测集群是否健康. curl -XGET 'localhost:9200/_cat/health?v' #后面加一个v表示让输出内容表格显示表头 绿色表示一切正常,黄色表示所有的数据可用但是部分副 ...

  4. 那些令人敬佩的刚学OI的大佬

    我是萌新刚学OI,请问LCT怎么写常树最小啊 我是女生刚学OI,请问树链剖分哪里写挂了? 萌新求教,这棵SBT哪里有问题啊啊啊…… 刚学OI,请问可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最 ...

  5. 我刚学OI

    我是新人,刚学OI,请问可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套主席树预处理动态DP分治FFT求多项式逆元对数函数的指 ...

  6. React 学习资源分享 菜鸟刚学5天 博客写的不多 不懂写博客的套路

    http://www.ruanyifeng.com/blog/2015/03/react.html 首先个人强烈推荐 阮一峰的React基础 细细过一遍,看得出大师的用心良苦 然后就开始看书般的过ht ...

  7. 刚学unity3d,跟着仿作了flappy bird,记下一些琐碎的心得!

    1.关于场景,即scene. 一个正常的游戏至少要有三个场景,即菜单(或者文件夹)场景.游戏关卡场景.游戏结束场景.它们一般统一放在project文件夹下scene文件夹(自己创建)中,方便管理. 1 ...

  8. 【C++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)

    这是我写的第一个博客关于C++的一些笔记,我不会写的太深奥,因为这样很多人会看不懂(我刚开始学C语言深受其害).个人觉得C++这门语言有些类似于C语言但是有些函数的用法还是有不一样的.C语言中的头文件 ...

  9. 一个页面,多个flash(刚学jq插件)

    只贴js那部分哦 调用 // flash轮播图 var sumF=$('.btnTabs span').length/4; //有四个flash var flashT01=new flash($('. ...

随机推荐

  1. Mycat在MySQL主从模式(1主1从)下读写分离和及自动切换模式的验证

    实验环境 两台Centos7  MySQL5.7.12 IP地址为:192.168.10.36  192.168.10.37 一台Centos7 Mycat IP地址为:192.168.10.31 一 ...

  2. ansible学习之路

    ansible安装

  3. 【前端】用jQuery实现瀑布流效果

    jQuery实现瀑布流效果 何为瀑布流: 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早 ...

  4. 006.Adding a controller to a ASP.NET Core MVC app with Visual Studio -- 【在asp.net core mvc 中添加一个控制器】

    Adding a controller to a ASP.NET Core MVC app with Visual Studio 在asp.net core mvc 中添加一个控制器 2017-2-2 ...

  5. CentOS7 搭建Ambari-Server,安装Hadoop集群(一)

    2017-07-05:修正几处拼写错误,之前没发现,抱歉! 第一次在cnblogs上发表文章,效果肯定不会好,希望各位多包涵. 编写这个文档的背景是月中的时候,部门老大希望我们能够抽时间学习一下Had ...

  6. 国内网站遭遇SYN攻击事如何及时解决问题

    1.SYN/ACK Flood攻击:这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服 务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗 尽或忙 ...

  7. pb日志查看记录

    因为日志的种类比较多,这里记录下来,方便查看! 1 pb下发日志查看 目前已经确定220-224 603都是这么查看的.手工下发的业务应该都是这么查看的,其实只要去确定步骤2中的序号,就可以直接进入步 ...

  8. iOS TextView输入长度限制 设置placeholder

    textView在使用中通常会有2个功能是最常用的 设置placeholder 限制输入长度 TYLimitedTextView刚好是为了解决这个2个问题而诞生的,下面讲解TYLimitedTextV ...

  9. Intellij IDEA 2017 详细图文教程之概述

    天天编码 , 版权所有丨本文标题:Intellij IDEA 2017 详细图文教程之概述 转载请保留页面地址:http://www.tiantianbianma.com/intellij-idea- ...

  10. 【.net 深呼吸】自定义应用程序配置节

    实际上,应用程序配置文件 App.config,是由各个节(Configuration Section)组成的,通常,配置节是按功能划分的,比如我们很熟悉的 appSettings.connectio ...