js基础语法(1)

120 阅读9分钟

js的输出

js和html不一样,js写的内容要在网页中显示,需要特别指定一下要显示才行 输出:指定要显示

1.以弹窗的形式在网中显示内容: alert(123) // 给用户做提示

2.跟html一样在网页中显示的:document.write(123)

3.带有询问的一种弹窗confirm(123) // 当对于用户的操作有疑问时,询问用户

4.可以输入的一种弹窗 prompt(123) // 提示用户输入内容

5.在控制台输出console.log(123) // 调试代码的时候,使用的。

变量的定义

变量是需要定义才会有 = 定义存储数据的容器

语法: var 变量的名称

语法2: var 变量名,变量名,... // 一次性定义多个变量

变量名称有要求:

由字母、数字、下划线、美元符号组成,但是不能用数字开头,不能使用关键字作为变量名 关键字,系统已经占用的名称

变量的赋值

给变量中放入内容 - 赋值

var a

使用 赋值符号 给变量中放内容: =

赋值符右边一定是一个具体的数据/值;赋值符左边一定是一个变量等待放内容;赋值符的作用是将右边的数据放在左边的变量容器中

// a = 3 // 将数据3放在a容器中

定义变量并放内容一步到位:var 变量名 = 数据

// var a = 3 // var b = a

可以一次性定义多个变量,并赋值 // var a = 3, b

/* 总结: 赋值就是将数据放在变量,通过赋值符:= =右边一定是数据,=左边一定是变量,=的作用是将右边的数据放在左边的容器中

var 变量 = 数据
var 变量 = 数据,变量 = 数据

*/

js的语法,每一行代码结束后,分号是可加可不加的,初期建议大家每行结束加分号 有些空格是必须的,有些空格是可选的

数据类型

数据类型 var a = 123

console.log(a);

检测数据类型: typeof

console.log(typeof a); // number - 数字类型

var b = '千锋帅哥'

console.log(b);

console.log(typeof b); // string - 字符串类型

js中的数据类型:

number - 数字类型

string - 字符串类型

字符串:一句话 - 若干个任意字符连接在一起的数据

表现:若干个任意字符用单引号或双引号引起来的数据

var a = "abcdefg"

console.log(a);

true / false - 年龄>18

js提供的专门用于描述一个条件或事物的两面性

var a = true

var b = false

console.log(typeof a); // boolean - 布尔类型

console.log(typeof b);

var a

console.log(typeof a); undefined - 未定义类型

正常的项目中,不会有变量是undefined类型的,一旦出现了,说明逻辑有问题

表示变量定义了,但是没有赋值,就是undefined类型

console.log(a); // undefined,表示没有赋值

object类型 - 对象,比较复杂的数据

var a = {

 name: '张三',    
 sex: '男',
 wife: '翠花'

}

var a = [1,2,3]

var a = null // 空的意思

console.log(a);

console.log(typeof a);

/* 总结: number string boolean undefined object:

    {}
    []
    null

js中的数据,一定要属于某种数据类型才ok,排除掉其他数据,只能是字符串 */

数字类型

number - 数字类型

了解:

1.标注16进制的数字和8进制的数字

var a = 12

console.log(a);

var a = 012 // 当给一个数字前添加0,表示这是一个8进制的数字

console.log(a); // 输出的时候,以10进制进行输出的

10进制的10转成8进制是12

012是8进制的12,转成10进制输出的10

var a = 0x12 // 这是16进制的12

console.log(a); // 转成10进制输出18

2.科学计数法来表示数字

console.log( 3e+5 ); // 3乘以10的5次方

3.计算机内部能显示的数字也是有范围的 var a = 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999

console.log(a); // Infinity - 无穷大

最大数字 console.log( Number.MAX_VALUE );

最小数字 console.log( Number.MIN_VALUE );

-Infinity - 无穷小

需要重点掌握的: 1.isNaN()

var a = '你好'

console.log(a);

var b = 2

console.log(b);

var c = a - b

console.log(c); // NaN - 不知道是多少的一个数字

NaN:not a number 首拼 - 含义,不是一个具体的数字,数据的类型是number

console.log( typeof c );

如果在我们的代码中出现了NaN这个结果了,说明我们的运算的有问题

js提供了一个用于检测数据是否是数字的工具: isNaN()

结果是true表示这不是一个数字,false表示是一个数字

var a = 12 console.log( isNaN(a) ); // false表示这是一个数字

var b = '你好' console.log( isNaN(b) ); // true表示这不是一个数字

2.小数计算不精准

var a = 0.1

var b = 0.0002

var b = 0.2

var c = a + b

console.log(c);

解决思路:

1.将所有小数乘以10的多少次方,得到一个整数,除以10的多少次方

var c = (a * 10000 + b * 10000) / 10000

console.log(c);

2.利用js提供的工具:强制保留小数点后几位 - toFixed(要保留的位数)

要保留的数字.toFixed(要保留的位数)

var a = 0.1

var b = 0.2

var c = a + b

console.log(c);

console.log( c.toFixed(3) );

一旦强制保留小数点后位数时,结果默认就是字符串类型

/* 总结:

1.isNaN(数据) - 检测数据是否是数字,true表示不是一个数字,false表示是一个数字

2.小数点计算不精准 - 
    ①扩大10的倍数,相加相减,再缩小10的倍数
    ②使用 数字.toFixed(位数) - 强制保留小数点后多少位 - 结果是字符串类型

*/

字符串类型

字符串:若干个任意字符用引号引起来

var a = 'asd点击★★★jkf"haj234768!#$%^&*(ksdf'

var b = "asdjkfhjkalsdf"

console.log(a);

1.引号嵌套问题:单引号不能嵌套单引号,双引号不能嵌套双引号 - 他们有特殊含义

将带有特殊含义的字符的特殊含义去掉,让他变成普通的字符,在特殊含义的字符前添加 \

转义符:将特殊含义去掉

var str = "爷爷正在给孙子讲《西游记》的故事,爷爷讲到:'唐僧害怕被孙悟空打死,所以对孙悟空说:"你会花果山去吧!"'"

` console.log(str);

document.write('文本加粗');

document.write(文本加粗);`

document.write可以输出标签,但是标签必须是一个字符串,否则识别不了

var a = '孙悟空'

var b = '紫霞仙子'

console.log(a);

console.log(b);

将两个字符串放在一起输出一次

  • 字符串拼接符,将两个字符串拼接在一起,组成一个更大的字符串

console.log( a + b );

console.log( a + '紫霞仙子' );

console.log( '孙悟空' + '紫霞仙子' );

/* 总结:

1.引号不能嵌套自己,除非转义
2.document.write可以输出标签,但是标签必须是字符串
3.字符串和字符串之间可以使用 + 连接成一个更大的字符串

*/

算数运算

算数运算: + - * / %(求余/取模) ` var a = 5

var b = a + 3

console.log(b);

var c = b - 6

console.log(c);

var d = c * 5

console.log(d);

var e = d / 3

console.log(e);`

余数:两个数相除,如果除不尽,剩下一个比被除数更小的数,这个剩下的数就叫余数 ` var a = 10

var b = 3

var c = a % b;

console.log(c); // 1

var a = 10

var b = 5

var c = a % b

console.log(c); // 如果能除尽,余数是0

var a = 3

var b = 5

var c = a % b

console.log(c);`

3 小一点的数字除以大一点的数字,余数就是小一点的数字

关系运算

关系/比较运算:在比较大小 - > < >= <=

比较运算的结果一定是布尔值

var a = 1

var b = '1'

var c = a > b

var c = a < b

var c = a <= b

var c = a >= b

console.log(c);

相等 == ** 重点***

直接比较值是否相等,不比较类型

var c = a == b

console.log(c);

全等 ===

先比较类型是否相等,然后如果类型不相等的话,直接就得到false结果了,如果类型相等了,再比较值是否相等

var d = a === b

console.log(d);

不相等 !=

var c = a != b

因为 == !=的结果一定是相反的,所以我们可以先思考是否相等,再确定不相等的结果

console.log(c); // false

不全等 !==

var a = 1

var b = '1'

var c = a !== b

console.log(c); // true

/* 总结:

1. == 和 === 的区别
2. != 和 !== 的结果怎么得到 - 先看 == 和 === 的结果再确定

*/

赋值运算

赋值符号: += 右边先加然后再赋值

+= , -= , *= , /= , %=

var a = 1

先将a和2相加的结果得到3,再赋值给a

a = a + 2

简写

a += 2

a -= 5

a *= 3 // 3

a /= 1

console.log(a);

var a = 10

a %= 6

console.log(a);

字符串拼接运算

var a = 1

var b = '2'

  • 左右两边有一个是字符串的话,他的作用是拼接

var c = a + b

console.log(c);

b += 5 // b = b + 5

console.log(b);

逻辑运算

逻辑: 并且&& , 或者|| , 非/取反!

用法: 条件 && 条件 , 条件 || 条件 , !条件

小红立志要当模特,模特的条件年龄在18~30之间

var age = 19

var result = age > 18 && age < 30

console.log(result);

var result = !(age <= 18 || age >= 30)

console.log(result);

小红立志要嫁给小明,小明择偶要求:身高在170以上,或者身价1000000,

var height = 150

var money = 2000000

var result = height > 170 || money > 1000000

console.log(result);

var result = !(height <= 170 && money <= 1000000)

console.log(result);

小红是一个女孩,去了泰国一趟

var isMan = false

isMan = !isMan

console.log(isMan);

自增自减运算

自增运算

var a = 3

a += 1

让一个数字在自己的基础上再加1 - 使用简写方式:自增运算

a++

++a

自增运算只能针对变量,不能针对表达式,或具体数字

console.log(a);

++放前面和放后面,在某些特定情况下是不一样的,当 自增 碰到 赋值、运算、输出的时候,放前面和放后面是不一样的

var a = 3

var b = a++

当自增碰到赋值的时候,++在前面就先进行++,后进行赋值,如果++在后面,就先进行赋值,后进行++

自减运算

符号: -- 让自己减1