day01-JavaScript初识

1. 什么是JavaScript

JavaScript是一门脚本语言(web相关),需要浏览器的支持(解析器 谷歌v8引擎),JavaScript是一个弱语言(没有绝对的语法 他的数据类型定义不是由对应的修饰符来定义 而是根据对应的值来定义的(值什么类型变量就是什么类型)

2.JavaScript的构成

a.BOM(浏览器对象模型 操作浏览器)

b.DOM(文档对象模型 操作html文档的)

c.ECMAScript(语法规范 es3 (兼容各大主流浏览器)es5(兼容普通版本浏览器) es6 (兼容相关的高版本浏览器))

3.JavaScript书写位置

内嵌式(不推荐)

<div οnclick="alert(123)">点我弹窗</div>

内联式 写在script标签中(可放在任何地方 建议放在html后面)

<script> var a = 10; alert(a)</script>

外联式 通过script标签的src引入

<script src="./hello.js"> </script>

4.JavaScript的代码执行顺序

从上到下按照对应的文档流

5.变量定义

采用var关键词来修饰的 (也可不用 默认以var关键词修饰 变量提升 伪全局变量) var 变量名 = 值

6.变量命名的注意事项

a.语义化命名 见名知意(有道)

b.不能使用关键词和保留字

c.使用驼峰命名法(第一个首字母小写以后的首字母大写)

d.不能以数字开头(构成可以由数字字母下划线以及$符号)

7.JavaScript的数据类型(JavaScript的数据由他的值来决定的)

基础数据类型(值类型 不能变的(常量))

数值类型 number

布尔类型 boolean (true 真 false 假)

字符串类型 string (单引号和双引号表示的都是字符串)

未定义类型 undefined(当前没有给值)undefined是null的派生

空类型 null 只有在null值的情况下才为null类型

引用数据类型(对象地址分配的 可以变的)

object array function ...

8.JavaScript的注释

注释是用于标识当前的代码片段的意义 方便之后的开发者进行维护(不会被编译)

单行注释 (注释一行)ctrl+/

多行注释 (注释多行 ) shift+alt+a

9.typeof 用于判断对应的数据类型(检索对应的数据类型)返回对应的数据类型的英文名(字符串)

typeof 变量 //返回对应的数据类型的英文

var str = '字符串'

console.log(typeof str);//string

var isNull = null

console.log(typeof isNull);//null返回的是object null是一个空对象引用

typeof的typeof是string

console.log(typeof typeof isNull);//null返回的是object null是一个空对象引用

function 返回的是function object返回的是object array返回的也是一个object

10.类型转换数据类型大的转小的是显式转换 小的转大的是隐式转

(string>number>boolean>undefined)

转字符串

toString方法调用(undefined不能使用)

var number = 10

var str = number.toString()

console.log(typeof str)

String方法调用

var str1 = String(number)

console.log(typeof str1)

转number类型

number方法转换

var str = '123'

var number1 = Number(str)

console.log(number1)

var str1 = '12.1a3a'

var number2 = Number(str1)

not a number 当出现无法转换的内容的时候 会出现NaN 属于number类型

parseInt 转换为整型(整数)

parseFloat 转换浮点类型(小数)

从前面开始截取能够转换的数值 如果前面没有可以转换的数值那么结果就是NaN

var str1 = '12.1a3a'

var number3 = parseInt(str1)

console.log(number3);

var number4 = parseFloat(str1)

console.log(number4);

注意事项

任意类型转number类型无法转换会出现NaN NaN属于数值类型

null转number结果为0

undefined转number结果为NaN

isNaN专门判断当前是否是NaN类型 出现NaN返回true 没有返回false

console.log(isNaN(NaN));//ture

转boolean类型

boolean方法

var str = '' //非空则为true

console.log(Boolean(str))

var number = 0 //非0和非NaN则为true

console.log(Boolean(number))

undefined和null转换为boolean都是false

console.log(Boolean(undefined))

console.log(Boolean(null))

注意事项

string类型转boolean非空就是true 空字符串为false

number类型转boolean 非0和非NaN就是true 0和NaN为false

undefined和null转换boolean都是false

number的特殊值

NaN 当你需要转为number类型的时候转换不成功出现的值

无穷大 Infinity

var nan = NaN //表示当前无法转换为number类型

无穷大 无穷小

var number1 = +Infinity //无穷大

var number2 = -Infinity //无穷小

console.log(typeof number1)

11.运算符及表达式

算术运算符

+ - * / % ++ --

//数值的运算

var number1 = 10

var number2 = 20

console.log(number1+number2);//30

console.log(number1-number2);//-10

console.log(number1*number2);//200

console.log(number1/number2);//0.5

//大数取小数得到的是余数 小的数取大的数得到的是本身(小的数)

console.log(number1%number2);//10

console.log(40%2);//0

console.log(40%3);//1

console.log(5%3);//2

console.log(3%5);//3

//+法运算 如果对应的有一个值的类型是字符串 那么得到就是字符串类型 (字符串进行拼接)

console.log('1'+2); //12

console.log('1'+true); //1true

console.log('1'+undefined); //1undefined

console.log('1'+null); //1null

//除此之外的所有都是会转为对应的数值然后进行运算 默认的转换用到的是number方法

console.log(null+true);//1

console.log(undefined+true);//NaN NaN进行任何数值运算得到的数值都是NaN

console.log(undefined*true);//NaN NaN进行任何数值运算得到的数值都是NaN

console.log(null*true);//0

console.log('123'/1);

console.log('123a'/1);

++ 自增

var number = 10

number++ =>number=number+1

console.log(number)//11

-- 自减

var number = 10

number-- //number=number-1

console.log(number)//9

++前置和后置的区别

前置先执行 先++再执行其他的代码

后置后执行 先走了对应的其他代码以后再执行++操作

var number = 10

number++ //number=number+1

console.log(number) //11

number-- //number=number-1

console.log(number) //10

console.log(number++);//10

console.log(number);//11

console.log(++number);//12

console.log(--number);//11

console.log(number--);//11

console.log(number);//10

注意事项

取余的规则 大的数值取余小的数值得到是余数 小的数值取余大的数值得到的是他本身

字符串进行加法运算会进行字符串的拼接 得到的是字符串

其他的任意操作都会先转为对应的number类型再进行运算

NaN做任意运算返回的结果都是NaN

12.逻辑运算符

&&与 俩个都是true 则返回true(最后一个true) 有一个是false就返回false (第一个false)

console.log(true && 1)//1

console.log(0 && false)//0

console.log('0' && undefined && NaN)//undefined

console.log('undefined' && 10 && 20)//20

|| 或 有个true直接取第一个true 如果都是false取最后一个false

console.log(true || 1)//true

console.log(0 || false)//false

console.log('0' || undefined || NaN)//'0'

console.log('undefined' || 10 || 20)//'undefined'

! 非 取反操作 将对应的真的变假的 假的变真的 返回的结果是一个boolean类型

console.log(true || 1)//true

console.log(0 || false)//false

console.log('0' || undefined || NaN)//'0'

console.log('undefined' || 10 || 20)//'undefined'

var n = true

var m = false

var l = false

console.log(n && m)//false  逻辑与 两边为真才为真,其余情况为假

console.log(n || m)//true  逻辑或 其中一边为真就为真,其余情况为假

console.log(!n)//false   取反, 与原本结果相反

console.log(!n && !m)//false

console.log(!n || !l)//true

console.log(n && !l || !m)//true

console.log(n && !l || m)//true

console.log(m && l || n)//true

注意事项

&& 与 俩个都是true 则返回true(最后一个true) 有一个是false就返回false (第一个false)

|| 或 有个true直接取第一个true 如果都是false取最后一个false

! 非 取反操作 将对应的真的变假的 假的变真的 返回的结果是一个boolean类型

13.条件运算符 返回的是一个boolean类型的值 (true或者false)

> < = >= <= == === != !==

var a = 10

var b = 20

console.log(a>b);//false

console.log(a<b);//true

不同类型的比较

字符串和对应的数值比较 比较的过程会进行数值类型的转换 NaN 出现NaN结果就是false

var str = 'abc'

var str1 = '123'

console.log(str>a);//false 出现了NaN

console.log(str1>a);//true

其他的比较也是同样的

var bool = true

console.log(bool<2);//true

console.log(bool>null);//true

console.log(bool>undefined);//false undefined会转换NaN

== 判断俩个值是否相等 进行转换操作

console.log('123'==123);//true 字符串的数值和普通数值进行比较他是返回true

console.log(true==1);//true

console.log(NaN==NaN);//false

console.log(undefined==null);//true

console.log(NaN!=NaN);//true

=== 恒等 全等俩个类型以及值完全相等 基于==

console.log('123'===123);//false

console.log(NaN===NaN);//false

console.log(undefined===null);//false

注意事项

undefined==null为true undefined===null 为false

字符串和字符串相比较那么对应的比较的ascii码(先比首字母 大写字母比小写字母要小 排在前面比后面的要小)

在对应的非数值的比较上会自动转为数进行比较

NaN==NaN为false 在正常比较中没有取反符号的情况下出现NaN就是false

恒等是基于==之上的 ==为false对应的恒等必定为false(==只比较值 ===要比类型)

14.赋值运算符

= += -= *= /= %=

赋值运算 =

var a = 10

a+=10 //a=a+10 20

a*=10 //a=a*10 200

a/=10 //a=a/10 20

a-=10 //a=a-10 10

a%=2 //a=a%2 0

console.log(a);//0

15.位移运算符

<< >>

位移运算是将对应的数值转为二进制进行移位运算(将一个数值转为二进制使用除二取余法)

怎么快速把2变成8 后面补零

console.log(2<<2);

扩展内容(进制转换)

常用的进制分为 2进制 4进制 8进制 16进制(颜色设置 最的值为f)

将对应的10进制转为其他进制得到的是字符串 toString

var number = 8

console.log(number.toString(2))

将其他进制转为10进制得到就是数值 parseInt

var str = '1f' //16进制的字符串

console.log(parseInt(str,16))//将16进制转为10进制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值