热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端JS02

1.1复习JS为什么要分数据类型开房,正规的开房如果来一个老师到上海出差,开一个房开一个单间如果来两个老师两个男老师开两个房间如果是两个老师,夫妻肯定一个房间,大床间就像数据一样,

1.1   复习       

  JS为什么要分数据类型

开房, 正规的开房

如果来一个老师到上海出差,   开一个房   开一个单间

如果来两个老师    两个男老师   开两个房间

如果是两个老师,夫妻        肯定一个房间,大床间   

就像数据一样,不同的数据类型,开辟的空间是不一样的,运算的方式和效率也是不一样的。

1.1.1  变量的重复赋值      

  变量中的,如果是数字的话,可以重复的赋值,会将原值覆盖掉。

如果是字符串的话,就不一样的,字符串比较特殊,具有不可变性。如果重复的操作一块内存空间的话,一定要注意一个效率的问题。  

1.2  If  else-if   

 If(判断条件){  一般是boolean类型的值或是关系表达式或是逻辑表达式

要执行的代码;

}else if(判断条件){

要执行的代码;

}else if(判断条件){

要执行的代码;

}...else {

 要执行的代码;

}

执行过程:

 程序首先运行到if处,先进入小括号中,判断条件是否成立,如果成立,也就是小括号里面返回true,则进入大括号执行里面的代码,如果条件不成立,也就是返回false,则依次的判断下面的else if对应的小括号中的条件是否成立,也就是返回true,如果成立则进入对应的大括号里面执行代码,如果都不成立,也就是返回False,则要看最后有没有else,如果有else,则进入else里面的大括号执行里面的代码,否则退出程序,执行后面的代码。

是多用来做区间的判断情况的。

1.3  三元运算符  

表达式1(关系表达式或是逻辑表达式)? 表达式2:表达式3;

如果表达式1成立,也就是最终求解出一个True的结果或是 表达式1返回true,则表达式2的值是整个表达式的值,如果表达式1不成立,也就是求解出的结果是false,则表达式3是整个表达式的值。

一般多用于两种情况的语境。

  var sex = 1;
//    if(sex == 1) {
//        console.log("男");
//    }else{
//        console.log("女");
//    }

    var a = sex == 1?"男":"女";
    console.log(a);

  var str = prompt("请输入两个人名中的一个,‘秦桧’,‘岳飞’");
//    if(str =="岳飞"){
//        console.log("忠臣");
//    }else {
//        console.log("奸臣");
//    }
    var s =   str =="岳飞"?"忠臣":"奸臣";
    console.log(s);

表达式:  就是一个可以计算出结果的式子

var a = 100;

比如说: a=1, “abc”, 100>20; a;

1.4  Switch-case  

switch(){ 一般是一个变量或是计算后的定值

case 1

 要执行的代码;

break;

case 2

 要执行的代码;

Break;

Case 3

 要执行的代码;

Break;

Case 4

 要执行的代码;

Break;

...

Default:

要执行的代码;

Break;

}

执行过程:

当程序执行到switch处,先进入小括号,计算里面值,然后拿着这个定值依次和大括号中case里面的值进行匹配,如果匹配成功,则执行对应的case中的代码,遇到break,则跳出当前swicth-case结构,如果匹配都不成功,则要看结构是否有default,如果有,则执行default中的代码,遇到break跳出结构,如果没有default,则直接跳出swicth-case结构,执行后面的代码。

多用于多条件的定值判断 。

注意:case中的值的数据类型一定要与switch小括号中的值的数据类型一致。

1.5  If-elseif  switch-case的区别

相同点:都可以实现多分支结构

不同点:

if-else if:可以处理区间范围

switch:一般 只能用于定值比较

三者的区别:

if有条件的执行一条语句     一种情况

if-else有条件的执行一条或另一条语句    两种情况中的一种

switch有条件的执行一组语句中的一条语句   多种情况中的一种

1.6  短路运算

转换为boolean类型的值后为false的情况:

0NaN, “”, null,undefined

&&         || 

//    var a = 100;
//    var b = 20;
//    var c = a+b>100 && a-b <50;
//    console.log(c);

//   var d =  true && false;
//    console.log(d);

    //var e = "abc"&&"amn";
    // &&找假 先看第一个表达式的值,如果第一个表达式不是boolean类型的话,会先将此值进行隐式转换,转换成boolean的值,如果转换后的值为true,则直接返回第二个值,不管第二值是真还是假,如果第一个数据为假,则直接返第一个数, 不管第二个数是真不是假。
    //console.log(e);

    var f = NaN && "aaa";
    console.log(f);

//&& 操作数两边如果都不是布尔类型,会先把操作数转换成布尔类型,返回,值是false的那个操作数
//&& 如果两边都是false返回第一个操作数

|| 找真的

var n = "abc" || "kkk";
console.log(n);
// 找真的 ,如果两个值不是boolean类型的话,是先将当前的对象转换成对应的boolean类型的值,如果第一个值转换后为True,则直接返回,如果转换后,第一个值为false,则返回第二值。

逻辑非  !        !对象

如果操作数是对象,返回false

如果操作数是空字符串,返回true

如果操作数是非空字符串,返回false

如果操作数是0,返回true

如果操作数是任意非0值,返回false

如果操作数是null,undefined,NaN,返回true

上面的规则可以简化成

转换为false的值:false""0NaNnullundefined

!!"abc"结果是什么

1.7  While

循环: 所谓循环就是重复的做同一件事情

while 循环

while(循环条件){

    循环体(要执行的代码);

}

执行过程:

当程序 运行到while处,首先进入小括号判断循环条件是否成立,如果成立,也就是值为true,则进入大括号执行里面的循环体,执行完毕之后,再次回到小括号中判断 循环条件是否成立,如果成立则再次进入大括号执行里面的循环体,往复循环。只要是循环,肯定会有一行代码能够改变循环条件,如果没有代码改变循环条件,我们称这样的循环叫死循环。

while(true){

循环体;

}

1.8  Do- while  

 Just   do   IT

Do{

循环体;

} while(循环条件)

执行过程:

程序执行到do处,先进入大括号执行里面的循环体,然后带着执行结果到达while的小括号,判断里面的循环条件是否成立,如果成立,则再次进入大括号执行里面的循环体,如果不成立,则跳出当前do-while循环。

特点,至少执行一次循环体,然后再判断 循环条件。

While的特点:

先判断循环条件,再执行循环体,有可能 一次循环体都不执行。

1.9  For循环

 一般多用于已知次数的循环

 for(表达式1;表达式2;表达式3){

循环体;

}

 执行过程:

程序运行到for处,进入小括号中,先执行表达式1,声明变量,并赋初值,然后执行表达式2,判断循环条件是否成立,如果条件成立,则进入大括号执行里面的循环体,第一次循环的时候,并不执行表达式3,第一次循环执行完毕之后,执行表达式3,改变循环条件,然后再执行表达式2,判断循环条件是否成立,如果成立,则再次执行循环体,如果不成立,则跳出循环。

1.10  循环的嵌套

 一个循环里面包含着另一个的循环

对于循环的嵌套来说,外面的循环循环一次,里面的循环循环N

for(var i=0;i<6;i++){
     for(var j=0;j<10;j++){
         console.log("循环嵌套");
    }
}

1.11  break  

 两种用法 :

  第一种用在swicth-case 用于跳出当前程序

 第二种,是用在循环当中,一般是用while或是for循环当中,与if搭配使用,作用就是立即跳出当前循环,后面的代码都不再执行。

也常见用于死循环的跳出。

While(true){

}

1.12  continue    继续的意思

一般也是用于循环当中,当遇到continue关键字的时候,立马停止本次循环,然后回到循环条件处,判断 循环条件是否成立,如果成立则继续下一次循环,如果不成立,则退出当前循环。

只结束当前本次循环,continue后面的代码都不再执行。

1.13  数组

数组 就是数据的有序列表。存储的是一组数据,这组数据可以是任意类型,而且数组中的元素可以随时的动态添加。

1.13.1 使用构造函数创建数组

// 第一种,用构造函数的方式创建 数组
 var  arr = new Array();// 创建了一个空数组,长度为0
// 数组就是数据的有序列表,这个顺序是按编号来的,默认以0开始,这个编号 叫做数组的索引或是下标
arr[0] = 100;
arr[1] = 99;
arr[2] = 98;
 arr[10]=96;
 console.log(arr.length);
 console.log(arr);// 直接打印数组 ,就可以看到数组里面的数据
 alert(arr);

var arr = new Array(6); //创建了一个长度为6的数组
arr[0]=100;
arr[7]=102;
console.log(arr.length);
console.log(arr);

JS的特性就是弱类型的动态语言,比如数组里面的元素是可以随时动态添加的,数组的长度会随着里面数据的变化而变化。

JS中的数组可以存储任何类型的数据,而且大小可以动态的改变,与PC中的内存大小相当。

1.13.2  使用字面量的方式创建数组

 var arr = [100,98,96,99,93,95,97,69,89,58,87];
//console.log(arr[0]);
//console.log(arr[arr.length-1]);

for(var i=0;ilength;i++){
    console.log(arr[i] +"===="+i);
}
 //console.log(arr.length);

前端JS02


推荐阅读
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
author-avatar
lady张昕彤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有