JavaScript知识点

1.JavaScript组成:

语言核心(ECMAScript)
DOM模型:文档对象模型(对应的树结构)标签 html head title body script
BOM模型:浏览器窗口模型
json:k-v

2.JavaScript在HTML中的用法

直接在HTML页面中插入JS代码,使用

3.两种使用方式的区别

可维护性
可缓存:浏览器可根据设置缓存所有的外部JS文件
适应未来变化

使用内部JS:
(1)在head中使用

4.元素

<noscript>元素包含的内容只会在以下两种情况
  浏览器不支持脚本
  浏览器支持脚本,但是脚本被禁用了  
除过上述两种情况,浏览器不会呈现<noscript>中的内容

5.JS基本语法

(1)弱类型脚本语言,纯解释性语言 ; 使用var定义变量
区分大小写,函数名不能使用typeof来命名,
标识符以字母开始,驼峰式命名规则
采用C语言风格注释,单行注释 // 多行注释(块级注释) /* */
(2)严格模式
“use strict”严格模式下JS的结果会有很大不同
(3)语句:语句以分哈结尾,分号(;)可以省略,但是不推荐
(4)关键字和保留字
(5)变量:可以保存任意类型,用var声明,只声明未初始化。underfined是一种值,表示变量只定义为初始化。
用var定义变量:在函数中用var定义为函数体局部变量,函数结束后自动销毁,
在函数中省略var定义的变量为全局变量,函数结束后仍然有效
一般在方法中使用局部变量,即var+变量名
(6)一条语句可以定义多个变量
var msg=”hello”,num=10,test;

6.数据类型

基本数据类型:Undefined(未赋值)、Null(空)->对象(Object) Boolean(布尔) Number(数字) String(字符串)
引用数据类型:Object(本质是由一组无序的键值对组成)
*****JavaScript变量均为对象,声明一个变量时就创建一个对象。

7.typeof操作符

由于js是弱类型语言,typeof检测给定变量的数据类型,一共有如下几种返回类型:
“undefined”:如果这个变量未定义,或者定义以后未赋值,表示为undefined
“boolean”:变量为布尔类型
“string”:变量为字符串
“number”:变量为数值类型
“object”:变量为对象或者null
“function”:变量值为函数

8.Undefined类型:

该类型只有一个值undefined,在使用var声明变量单未对其初始化时(或者显示声明变量值为undefined)。

9.Null类型

该类型只有一个值为null,该值表示一个空对象指针(用typeof检测null返回object的原因)
undefined派生自null(==返回true)没必要给变量显式的让其为undefined,但有必要定义为null

10.Boolean类型

该类型有两个值:true和false
js中所有类型的值都可以转换成Boolean类型,调用转型函数Boolean().
String:任意非空字符串转换成true,空字符串转换成false.
Number:非零数值转换成true,0和NaN转换成false
Object:任何对象转化成true ,null转换成false
Undefined:n/a转换成true,undefined转换成false。
控制流语句中可以采用上述转换规则使得其他类型自动转换后才能Boolean

11.Number类型

整数:js中定义常用的数值类型有整数和浮点数,数值字面量格式包含八进制,十进制,十六进制
浮点数:数值中包含小数点,并且小数点后至少有一位数,的6个0以上可以使用科学计数法e来表示。
Number由保存范围,超出范围时最小值-INfinity 最大值Infinity
isFinite()检测当前变量是否在保存范围内。
最大值用MAX_VALUE保存,正无穷POSITIVE_INFINITY 负无穷

NaN表示的是非数值,表示一个本来要返回数值的操作数未返回数值的情况:
任何涉及NaN的操作都会返回NaN(NaN/10)
NaN余任何数都不相等包括自己
0除以0会返回NaN,正除以0会返回INFINITY
isNaN()任何不能转换成Number的变量,都会返回true。

12.数值转换

数值转换函数:非数值转化为数值
Number():可用于任何数据类型
parseInt():用于字符串转为Number,忽略前面的数字直至遇到非字符,输出前面的数字
parseInt(“”,转换基数):可以给定第二个参数指明转换成几进制,推荐使用
parseFloat():字符串中第一个小数点有效,parseFloat直接洗十进制值,没有指定基数的用法,
16进制的字符串只会被转换成0,字符串解析为整数,返回整数

13.String类型:”” 或者 ”

      字符字面量:
      转换为字符串:任何对象的toString()方法,undefined和null没有toString()方法
                   toString(转换基数):也可以传递转换基数,转换为设置的进制
                   转换函数String()可以接受任何类型数值。

14.Object类型:

 var obj = new Object()
 constructor():保存用于创建当前对象的函数
 hasOwnProperty(“propertyName”):检查给定属性在当前对象中是否已经存在
 isPropertyOf()

15.常见操作符

非操作符:!!=Boolean()
逻辑与(&&):两个true则为true,否则false

加法操作符:任何操作数与String做加法运算,先将其他类型转换层String类型在1进行拼接
减法操作符:任何操作数与Number做“-”,首先把其他类型使用Number()变为Number类型然后做数学减法运算
关系运算符:如果一个操作数为字符串或者其他类型,使用Number()将其转换成数值然后按照减法郭泽进行减法运算
任何操作数与NaN比较,结果为false
相等操作符:
相等或不相等(==):先转换类型再比较
如果一个操作数为布尔值,则将布尔值转换为数值后进行比较
如果一个操作数为字符串,另一个为数值,首先将字符串转换为数值后进行数值比较
null和undefined不能转为其他任何值(与其他比较返回值均为false,,只有当他们两个比较时为true)
全等或不全等(===):仅比较而不进行类型转换
全等操作数在比较前不转换数据类型,只有当两个操作数相等且类型相同情况下才全等。

for-in语句:
=java中foreach

switch在进行比较时采用全等运算符不会发生类型转换

函数:
function functionName(){
return[];
}
js返回值通过函数体的return语句实现,return语句后的任何代码都不会被执行
函数参数:
js函数参数内部使用一个数组来接收,函数不关心数组中有多少参数,也不关心参数类型
在函数体内,使用arguments对象来访问参数数组,arguments.length确定当前函数传入多少个参数

arguments与命名参数值永远保持同步,命名参数与arguments不在同一块内存空间,但是值会保持一致
如果只传入一个采纳数,使用arguments【1】设置的值不会同步到命名空间,因为arguments对象长度是
由传入参数的个数决定的,与命名参数无关

JS函数均为值传递,不存在引用传递
JS函数无重载,如果在JS中定义了两个名字完全相同的函数,后定义的函数会覆盖前面的函数。

函数声明:
1.函数声明(可以先调用,再声明)
2.函数表达书(必须先声明,后调用)var functionName = function(){}
3.立即执行函数:自动调用函数
(function(){
//函数体
})();

动态属性
对于引用数据类型,可以动态添加属性和方法,也可以改变属性和方法。
值复制:基本类型和引用数据类型均为值复制
传递参数:js中所有函数均为值传递

执行环境(环境)
js中年定义变量与函数有权访问的数据
每个执行环境都有与之相关联的变量对象,环境中定义了所有变量与环境都保存在这个对象中
全局执行环境:web浏览器中,window对象(BOM)
在全局执行环境中,所有全局变量和函数都作为window对象的属性和方法
执行环境中所有代码执行完后,该环境销毁,保存在其中的变量和函数会随之销毁。
每个函数都有自己的执行环境,当解析器进入一个函数时,函数的环境会被推入到一个环境栈中,
函数执行完后,将站环境弹出,返回函数进入之前的执行环境。

作用域链:
当代码在一个环境中执行时,会创建变量对象的作用域链
全局执行环境的变量,始终都是作用于链中最后一个对象
标识符解析过程:
解析器沿着作用域链一级一级向上搜索的过程,搜索过程始终从作用域链的前端开始,逐级向后

内部环境可以通过作用域链访问所有外部环境,但外部环境不能访问内部环境中任何变量和函数,
每个环境可以向上搜索作用域链,查询变量和函数名,但是任何环境都不能向下搜索进入另一个环境执行。

延长作用域链:
js中只有以下两种情况会发生作用域链延长:
1.try……catch语句中的catch块
2.with语句
with(location){
var url1 = href+url;
}
with函数中的参数默认作为函数体内所有变量的前置对象
location.url1 = location.href+location.url
js中没有块级作用域:
1.声明变量:
使用var声明的变量会自动被添加到最近的执行环境中,在函数内部,最接近的执行环境就是函数的局部变量。
如果初始化变量没有var使用var声明,则该变量自动添加到全局变量。
2.查询标识符
在搜索标识符的过程中,如果存在一个局部变量定义,搜索过程会自动停止,不再进入父执行环境
局部环境中存在同名标识符,就不再使用父环境中的标识符
3.垃圾收集(动态内存语言)
3.1标记清除
当变量进入环境,将变量标记位“进入环境”,垃圾收集器将永远不会回收此状态变量

Array类型:
1.js数组的每一项都可以保存任何数据类型
2.js数组大小动态调整,可以随着数据的添加自动扩容

创建数组的方式:
1.使用Array构造方法
var colors =new Array(20)
length=20

创建数组并初始化:var colors = new Array(“red”,”yello”,”blue”);

2.数组字面量表示法
数组字面量表示是由一对包含数组的方括号
3。读取和设置值:
要使用方括号提供基于0的数字索引
如果索引下标>数组长度 则数组自动扩容,此时数组的长度length=数组下标+1

4.数组length属性
length属性存放数组项数。始终返回>=0
lenght属性不止是可读的铜鼓设置length属性,可以从数组的末尾移出项或者向数组添加新项
将length属性设置为大于项数的值,新增的每一项值都为undefined
5.转换方法
将数组对象输出时,默认会调用toString()默认数组每一项以“,”分隔 valueof返回原数组
使用join()达到自定义分隔符的目的,如果不给join方法传值,则默认使用“,”分隔
如果数组中某一项为null或者undefined,所有转换方法返回结果以“”表示

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值