• js基础知识


    最近在跟前端的课程,老师在讲js的相关知识,虽然感觉有些东西在前期学javaEE的时候已经很熟悉了,但认真听的时候感觉还是有收获的。现将一些知识点总结如下:

    首先,JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于对象的语言。具有(1)脚本语言、(2)基于对象 、(3)简单、(4)动态性、(5)跨平台性等特点,虽说js是基于对象的,但感觉它已经具备了面向对象的特性

    1.js的使用方法:

      1)内嵌方式:HTML页面加入<script></script>标签,把代码写在标签里。

     

     2)外部引用:把JavaScript代码单独写在一个文本文档里,修改后缀名为.js 。在需要使用的时候引用。

     

    另需要注意的

    1.所有符号,包括括号,分号,逗号等都应使用英文符号。

    2.区分大小写。

    2.变量的类型:

       1)数字类型

    JavaScript只有一种数字类型,可以带小数点,也可以不带

    var age = 20

    var height = 175.5

    这里需要注意一个NaN类型,即非数值(Not a Number),这是一个特殊的数值,用于表示一个本来要返回数值的操作数为返回数值的情况(这样就不会分抛出错误了)。例如,在其他编程语言中,任何数除以0 都会导致错误,但在Script中,任何数值除以0都会返回NaN,因此不会影响其他代码的执行

    NaN特点:

     1.任何涉及NaN的操作都会返回NaN

     2.NaN与任何值都不相等,包括其本身

    另外,还可以了解一下isNaN()函数,接受一个参数,这个参数可以是任何类型。isNaN()在接到参数后会尝试把这个参数转化为数值。某些不是数值的值会直接转化为数值,如字符串“10”(可转化为数值10)或Boolean值 false(可转化为数值1)。这是函数会返回false,而任何不能被转换位数值的值都会单只这个函数返回true。

       2)字符串类型

    用单引号或者双引号包围的字符。

    var name = ‘张三’;

    var address = “中国北京”;

    注意:单引双引必须匹配,即单引开始,单引结束。

       3)布尔型

    有两个值,truefalse

    true:表示真

    false:表示假

       4Null

    一个关键字,表示某对象没有值。

       5Undefined

    以下两种情况将得到 undefined

    1.试图访问对象中不存在的属性

    2.变量定义之后没有赋值

    这里需要注意一下nullundefined区别:

    null表示一个对象的所占用的内存是null,是可以使用的。

    undefined表示这个对象声明后没有分配内存,或这个属性不存在。

    这五种基本数据类型属于基本类型值变量,指保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。可以提高产讯变量的速度。对于保存基本类型值的变量,我们说他们是按值访问的,因为我们操作的是他们实际保存的值。

    另还有一种引用类型值,指那些保存在堆内存中的对象,意思是变量中保存的实际上是一个指针,指针指向内存中另一个位置,该位置保存对象(跟c++中指针的概念类似,可以辅助理解),对于这种变量,我们称为是按引用访问,因为我们操作的不是实际的值,而是被那个值所引用的对象。

    举例来理解:

      1.var num1=5;

       var num2=num1; 此时改变num2 的值不会改变num1;

      2.var obj1=new Object();

       var obj2=obj1;

       obj1.name="sss" 此时改变obj2的话,obj1的值也会改变

    3.数学运算符:

    运算符

    描述

    例子

    结果

    +

    x=y+2 

    x=7 

    -

    x=y-2

    x=3

    *

    x=y*2

    x=10

    /

    x=y/2

    x=2.5

    %

    求余数

    x=y%2

    x=1

    ++

    累加

    x=++y

    x=6 

    --

    递减

    x=--y

    x=4 

    运算符

    例子

    等价于

    结果

    =

    x=y

     

    x=5

    +=

    x+=y

    x=x+y

    x=15

    -=

    x-=y

    x=x-y

    x=5

    *=

    x*=y

    x=x*y

    x=50

    /=

    x/=y

    x=x/y

    x=2

    %=

    x%=y

    x=x%y

    x=0

    y = 5

    关于js”+”的使用:

      因为js是弱类型的脚本语言,所有变量的定义全部使用var关键字进行声明,其在运行时自动识别数据类型。而对于字符串和数字类型的数据,”+”号具有不同的意义:前者是字符串拼接,而后者则是数值运算,分开使用无所谓,但当这两种数据类型同时使用”+”号时,会出现什么样的情况呢,现将特殊情况列举如下:

     var age=20;

     var height=30;

     alert(age+height+""); //弹出50(字符串)

    我们声明了两个数字类型变量,然后对其进行了age+height+""的操作,因为第一个”+”号是对两个数字类型的变量,所以会进行数值相加的操作,然后下一个”+”号前后是数字类型和字符串类型,这时进行的是字符串的拼接操作,所以最终的到的结果是一个字符串类型的”50”

    而对于””+age+height,则会一直进行字符串拼接的操作,最终得到的是字符串”2030”

    同理,对于age+””+height,我们得到的也是字符串”2030”;

    a++ 操作

    对于a++操作,我们很熟悉的知道,这等同于a=a+1;但对于下面的代码,会有我认为很奇怪的结果

    var a=5;

    alert(a++); //5

    alert(a);  //6

    第一个alert弹出的是5,即没执行a+1操作操作之前的a,或者说执行了但是没有进行赋值,而第二个则是弹出的已赋值完成的a

    4.比较运算符

     给定 x=5,下面的表格解释了比较运算符

    运算符

    描述

    例子

    ==

    等于

    x==8  false

    ===

    全等(值和类型)

    x===5  true

    x==="5"  false

    !=

    不等于

    x!=8  true

    >

    大于

    x>8  false

    <

    小于

    x<8  true

    >=

    大于或等于

    x>=8  false

    <=

    小于或等于

    x<=8  true

    注意:

    == 数值相等,===数值和数据类型全部相同才为“true

    5.一些简单语句

    1If语句:

     

    If(表达式){

    //表达式为真,执行我

    else

    //表达式为假,执行我

     

    if(表达式1){

    //表达式1为真,执行我

    }else if(表达式2){

    //表达式2为真,执行我

    }else if(表达式3){

     //表达式3为真,执行我

    }else {

     //都为假,执行我

    }

     

    2)switch语句

    switch(){

    case 1

    case 2

    case 3

    default

    }

    switch的值和对应的case匹配(注意:完全匹配)

    哪个项匹配,就执行哪个

    3)while循环

    while(循环成立条件){

    循环体

    }

    循环成立条件:为真则一直执行,为假则退出

    4)for循环

    for(初始化;循环成立的条件;自增){

    循环体

    }

    初始化:只在开始执行一次

    循环成立的条件:如果条件为真,则继续执行,为假则退出

    自增:循环每次执行后都执行一次,一般做自增控制

    continue :本次循环结束,进入下一次

    如果一个循环能执行 N 次,每次执行continue只结束当前第1/N次,进入下一次。

    break:结束与之最近的循环。

    如果一个循环能执行 N 次,执行break后,循环退出

  • 相关阅读:
    pytest实现参数化(@pytest.mark.parametrize)
    pytest标记测试用例为预期失败(@pytest.mark.xfail)
    pytest标记跳过某些测试用例不执行
    pytest的conftest.py配置
    pytest之fixture使用
    模拟赛42 题解
    模拟赛41 题解
    一些可能永远用不到的性质
    补锅
    骗分杂谈
  • 原文地址:https://www.cnblogs.com/jiangxiulian/p/5882768.html
Copyright © 2020-2023  润新知