Javascript基础编程1

 

1.简单值和复杂值的区别

简单数据类型所创建的值被称之为简单值,而复杂数据 类型所创建的值被称之为复杂值。

那么简单值和复杂值具体有什么区别呢?

1.简单值(或原始值)

简单值是表示JS中可用的数据或信息的最底层形式或最简单形式。简单类型的值被称为简单值, 是因为它们是不可细化的。

也就是说,数字是数字,字符是字符,布尔值是truefalse, nullundefined就是null undefined

2.复杂值

在JavaScript中,对象就是一个复杂值。因为对象可以向下拆分,拆分成多个简单值或者复杂 值。复杂值在内存中的大小是未知的,因为复杂值可以包含任何值,而不是一个特定的已知值。 所以复杂值的数据都是存储于堆区里面。

3.访问方式

按值访问

简单值是作为不可细化的值进行存储和使用的,引用它们会转移其值

引用访问

复杂值是通过引用进行存储和操作的,而不是实际的值。创建一个包含复杂对象的变量时,其值 是内存中的一个引用地址。引用一个复杂对象时,使用它的名称(即变量或对象属性)通过内存中 的引用地址获取该对象值

4.比较方式

简单值采用值比较,而复杂值采用引用比较。复杂值只有在引用相同的对象(即有相同的地址)时 才相等。即使是包含相同对象的两个变量也彼此不相等,因为它们并不指向同一个对象

5.动态属性

对于复杂值,可以为其添加属性和方法,也可以改变和删除其属性和方法;但简单值不可以添加 属性和方法

6.变量赋值

最后说一下关于变量的赋值,其实是可以分为直接赋值和引用赋值的。直接赋值,就是指将简单 值赋值给变量,而引用赋值是指将一个复杂值的引用赋值给变量,这个引用指向堆区实际存在的 数据。

直接赋值

let a = 3;

let b = a;

b = 5;

console.log(a);//3

引用赋值

let a = {value : 1};

let b = a;

b.value = 10;

console.log(a.value);//10

2类型转换

通过前面的介绍,我们已经知道了在JavaScript中有好几种不同的数据类型。然而这些数据类型 都是可以相互转换的。类型转换可以分为两种,隐性转换和强制转换。

1.隐性转换

当不同数据类型进行相互运算的时候,

当对非布尔类型的数据求布尔值的时候

预期为数字的时候:

算术运算的时候,我们的结果和运算的数都是数字,数据会转换为数字进行计算(-* / %)

2.强制转换

转换为数值 number() , parseInt() , parseFloat()转换函数

小技巧:

・转换字符串:a=""+数据

-转换布尔:!数据类型

-转换数值:数据类型*或/I

 

运算符

 

1算数运算符

常见的算数运算符有加减乘除和取模运算。主要需要注意的就是,在动态语言中做除法运算时, 能够得到小数。下面是关于算数运算符的示例:

 

2 一元运算符

所谓一元运算符,就是指只作用于一个操作数的运算符。常见的一元运算符有两种,赋值运算符 和递增递减运算符。

  1. 赋值运算符

关于赋值运算符,前面我们已经见到过了。最常见的就是=,代表将右边的内容赋值给左边。除 此之外,还有+=、-=、*=等一系列赋值运算符,具体的示例如下:

let a = 5;

a += 5;

console.log(a); // 10

a -= 3;

console.log(a); // 7

a *= 5;

console.log(a); // 35

a /= 5;

console.log(a); // 7

a %= 2;

console.log(a); // 1

2.递增和递减

除了上面所介绍的赋值运算符以外,常见的一元运算符还有递增和递减。在递增递减中,主要需 要注意前置和后置的区别。如果是前置,那么是先自增或自减,然后参与运算。如果是后置,则 是先参与运算,然后再自增或者自减,示例如下:

前置示例:

let a = 2;

let b = 10;

let c = 一a + b;

let d = a + b;

console.log(a,b,c,d);//1 10 11 11

后置示例:

let a = 2;

let b = 10;

let c = a + b;

let d = a + b;

console.log(a,b,c,d);//1 10 12 11

需要注意的是,我们的自增自减操作符不仅仅局限于数值,其他类型也可以,遵循下面的规则:

・在应用于一个包含有效数字字符的字符串时,现将其转换为数字值,再执行加减1操作。字 符串变量变为了数值变量。

-在应用于一个不包含有效数字字符的字符串时,将变量的值设置为NaN,字符串变量变成数 值变量。

-遇布尔值false时,先将其转换为0再执行加减1操作,布尔值变量变成数值变量。

-遇布尔值true时,先将其转换为1再执行加减1操作,布尔值变量变成数值变量。

・在应用浮点数数值时,执行加减1操作。

示例:

let si = "123";

let s2 = "123Hello";

let s3 = "Hello";

let s4 = true;

let s5 = 3.14;

console.log(一s1);//122 console.log(一s2);//NaN console.log(一s3);//NaN console.log(一s4);//0 console.log(一s5);//2.14

 

3比较运算符

 

1.关系运算符

小于,大于,小于等于,大于等于

  1. 相等和不相等

==表示相等,!=表示不相等,数据类型不同的数据进行相等比较的话会自动转换数据类型, 还有一些其他的转换规则如下:

• null和undefined是相等的

如果有一^操作数是NaN,则返回false, NaN和NaN比较也是false

-如果是数字的字符串和数字进行比较,会先将字符串转换为数字

•布尔值里面true转换为1, false转换为0

 

  1. 全等和不全等

全等是===,不全等是!==这个就是必须数据类型和数值都相等

4逻辑运算符

  1. 非!

所谓非,就是取反,非真即假,非假即真

  1. 与&&

作用于两到多个值,并且只有所有的操作数都是真值时,才为true

3.或‖

同样是作用于两到多个值,但是只要有一个操作数为真,就返回真

 

6运算符优先级

JavaScript中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有 较高优先级的运算符先于较低优先级的运算符执行。

例如,乘法的执行先于加法。

下表按从最高到最低的优先级列出JavaScript运算符。具有相同优先级的运算符按从左至右的顺 序求值。

运算符描述

.[]()

字段访问,数组下标,函数调用以及表达 式分组

++ 一 - ~ ! delete new

void

typeof —元运算符,返回类型,对象创建,未定

义值

* / %

乘法,除法,取模

+ - +

加法,减法,字符串拼接

<< >> >>>

移位

< <=> >=instanceof

小于,小于等于,大于,大于等于,instan

ceof

== 1= === |==

等于,不等于,全等,不全等

&

按位与

|

按位异或

按位或

&&

逻辑与

||

逻辑或

?:

三目运算符

=

赋值

多重赋值

 

  1. 拥有良好注释的代码是专业程序员的标志。如果没有注释,往往在几周后自己也很难明白自 己写的代码的含义。
  2. 在JavaScript中,每一条代码以分号结束。
    1. 标识符就是我们自己给变量。函数或者对象起的一个名字。定义标识符时需要遵循一定的硬 性要求和软性要求。
    2. 常见的命名法则有匈牙利命名法,驼峰命名法和蛇形命名法。
    3. 在JavaScript中存在一组关键字和保留字,不能用作自定义标识符。
    4. 在JavaScript中数据类型整体上可以分为简单数据类型和复杂数据类型。
    5. 使用typeof运算符可以查看一个数据的数据类型。
    6. 在JavaScript中声明变量可以使用let, const和var关键字来进行声明。
    7. 简单值和复杂值在访问方式,比较方式以及内存中存储空间的区别。
    8. 使用var关键字声明变量存在一些特殊的特性,例如重复声明以及遗漏声明
    9. 所谓作用域就是指变量在程序中能够被访问到的区域。常见的有全局作用域和局部作用域。
      1. JavaScript中存在6种基本数据类型,分别为undefined, null, boolean, number, string symbol o
      2. 每种数据类型都有其对应的属性和方法。掌握这些属性和方法可以让我们在编写代码时事半 功倍。
      3. 不同的数据类型之间可以相互进行转换,其中分为隐性转换和强制转换
        1. JavaScript中有众多的运算符,例如最常用的算数运算符,还有比较运算符,逻辑运算符, 和位运算符等。不同的运算符之间有一套优先级关系。

 

 

3章流程控制语句


所谓流程控制,主要就是用于控制整个程序的走向的。默认情况下,程序是从上往下,逐条执行,这种情况我们将其称之为顺序结构。但是并不是所有的程序都是使用顺序结构就能够完成的。在我们书写程序时往往还需要对整个程序进行分之,或者对某段代码进行重复执行。

 

条件语句 

 

单分支语句 由一个if组成,如果条件成立,则进入代码块开始执行语句,如果条件不是一个布尔值,那么会被自动转换为布尔值

If(条件){

输出代码;

}

多分支语句 :有两个分支线,如果i条件不成立,那么就会跳入到else语句里面,

if(条件){

执行代码

}

Else{

执行代码

}

三目运算符if...else语句的一个缩写方式,就是使用三目运算符

条件?(条件为真是执行的代码):(条件为假的时候执行的代码)

逻辑决策树

If(条件){

执行语句

}

Else if(条件){

执行语句

}

 Else if(条件){

执行语句

}

Switch语句

Switch(条件){

      Case 1:执行语句;

Break

Case 2:执行语句;

Break

Case 3:执行语句;

Break

Case 4:执行语句;

Break

}

 

 

猜你喜欢

转载自www.cnblogs.com/RAINBOW1357/p/11400675.html