day09

js的历史:

时间:1995年 布兰登~艾奇

网景;公司是互联网的龙头老大


js基础

弹出窗:

编译形语言

解释性语言

计算机语言分为强类型语言,弱类型语言,定义的变量必须设定该变量的类型,叫做强类型;

定义的变量不设定类型,可以随意赋值,这种叫做弱类型语言.

JavaScript就是弱类型,二typescrip是强类型.弱类型语言并不会好.

事件驱动型语言 很多语言在执行的过程中是通过在不同节点上触发,然后执行

脚本语言 附着性的语言就属于脚本语言

在这个script标签可以获取调用上面的div,但是不能执行调用下面的p标签

script标签可以放在head中,亦可以放在body中

1.当将script标签放在head中,这里代码是不能调用body中任何DOM对象,所以一般来说如果在head中script都是写成工具库等待下面的script的调用

2.script标签可以放在head中也可以放在body中在body中写script标签尽量写在body中最下面
3.如果将script标签写在html结束后,这种写法是错误的,但是运行过程中浏览器会自动修复错误将将这里写的script放在body最下面,浏览器扫动修复是需要时间的,第二浏览器修复错误时DOM树已经渲染完成,如果要修复就需要重新将DOM拆分开,会造成二次回流

js的代码执行方式:

1、在script标签中写入js代码,执行script标签时就会执行js
2、通过引入外部js文件,然后执行文件中的js(可以在head中引入,也可以在body中引入)

3.超链接标签中href中写入javascript:js代码就会在点击超链接时执行这个js代码

按钮等表单元素事件,例如οnclick=“Js代码”可以在点击或者触发事件的时候执行js代

中文不适合做编程语言的原因:

1.中文不适合做编程语言第一占位2B,体
i码仅在127个中查找,中文要在几十万个

2.查找速度慢

路径:

./当前打开的文件对应的路径.

../上一级路径 当前

文件夹要求:

不允许给文件夹起中文名


路径问题:

通过open with live server 会自动开启一个web服务,这个web服务的根路径就是当前打开的项目路径
 

这种引入方式{1.打开加载通道

2.加载文件

3.结束文件

4.运行执行js文件}

这个过程中,如果文件很大,加载完成后执行代码很复杂,就会造成这里一直停留等待运行完成不会继续执行后面的body内容了,这会造成空白页的产生,这个过程叫做同步阻塞.

 

异步加载:

如果需要异步在script加上async 异步不会等待js加载完成并且执行完成继续,而是直接继续向后执
 

如果在script中加上defer 也会异步执行,但是defer会在所有DOM渲染树完成后执行script)
 


 


注释和调试

1.可以让你清楚对下面内容的描述

2.

js里面两种注释

//行注释注释一行I
/*块注释可以注释一行中的一部分,也可以注释多行段落*/
//注释作用―注释不会运行1、解释代码2、可以暂时不执行某些代码等待恢复

3、备注代码的撰写人,修改时间,目的

控制台的作用:

consoloe.log打印内容,便于控制台检查错误

控制台自带计算器:

 


栈和堆

变量就是在栈中开辟一个空间,空间的名称叫做变量,空间中存储的值叫做变量值
这个变量可以存储数值,字符串,布尔值,还可以存储堆中的引用地址
window是所有html、css,js的根元素,是BOM的根元素就是窗口

1、早期

                        所有变量都存储在window上
2、中期
                        var定义变量
3、近期
                        let定义变量const定义常量

点语法什么下面的内容a.b a这个对象下的b的属性或者方法 eg: 张三.
眼睛

李四.儿子.手 李四的儿子的手

alert( "aa")
window.alert("aa")  被省略

早期的写法实际上相当于在window对象上添加一个属性x并且赋值为30)x=30;//在栈中开辟了一个空间,命名为×,并且给里面存储了30
window .x=30;
 

当使用 var定义变量时,在当前html执行的过程中执行到当前的script标签时,会先

检查整个script标签中使用var定义的变量,并且在script标签开始执行时,就在栈中开辟了
所有var定义的空间变量,但是没有赋值,当运行到对应的这句定义语句时才会赋值,这个叫做预解析var x=30;

x=30;//没有预解析的,因此在这条语句之前使用x,x都是未定义的错误不能使用﹐错误的未定义,就没有这个变量空间var y=30;//使用预解析,因此在这条语句之间x的值时undefined(未定义)已经定义了这个变量空间,但是没有赋值
 

let定义的变量虽然let可以预解析变量,但是不能在定义之前使用这个变量I
let只作用于语句块内条件语句循环语句函数{ }let变量在这个可以使用,不能使用let z=30;
 

let在语句块内定义的变量,当语句块执行结束后就会销毁

const定义常量﹑变量值存储空间中的值可以任意改变,常量值存储空间中的值在第一次赋值后不能再次改变
 

变量的命名规则:

1、变量名必须首字符是字母字符或者$比如a3 ba $a $1,而且后面的字符可以并且只能是
字母字符或者数值或者$或者_a54a_3 a$2
2.变量命名时使用驼峰式命名法如果变量名是由多个单词组成,除了第一个单词以外其他单词必须首字母大写
totalPrice goodsId

3.虽然变量名可以使用中文定义,但是禁止使用中文定义变量名,也不要拼音定义变量
        变量名必须具有可视化的含义。

4.不能使用关键词(if for return)定义变量,也不能使用保留字定义变量

5.window下的属性和方法名称不能用于var定义的变量名, varE定义的变量会放在window
覆盖window的属性,但是let和const定义的变量和常量不会放在window,不牵扯覆盖

 

关键词:一般来说,使用关键词命名会报错

保留字不能用

变量定义的方式

报错

变量赋值时会有返回值:


在计算机中,计算机只认识二进制

十进制﹑最大值是9,进制就是最大值+1当数值达到进制数时,个位补零十位进一―345 3*10(2次幂)+4*10(1次幂)二进制最大值是1,0 1|

十进制转二进制使用,除二取余法

2的5次幂

布尔型

未定义

变量开劈了空间,但是没有存储值

null空值

代表切断变量与堆中的引用关系.

对象类型

对象 对象是是使用{属性:属性值}

symbol 类型

大整形

数值后面跟一个n

函数类型

判断数据的类型的关键词

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值