变量声明与函数声明的权重问题

今天在学习的过程中突如其想:
如果,我定义了一个变量赋了一个函数,又定义了一个同名函数,那么会执行哪一个呢?
于是:

var fun;
function fun(){} // fun(){}

可以看到定义为赋值的fun被赋值了定义的fun()函数,写到这里我想到,如果直接赋值的输出会不会是一样的效果。

var fun = function (){} // (){}

出乎意料的输出了一个匿名函数,因为赋值给fun变量的确实是一个匿名函数。

function fun(){}
var fun;
console.log(fun); // fun(){}

输出了fun函数,是因为var会提升,换成let就会报错啦。

var fun = 0;
function fun(){}
console.log(fun); // 0
fun(); //error fun is not a funciton

说明声明且赋值后的变量的权重高于函数声明,但是声明未赋值的话会被同名函数赋值。

var fun = function (){console.log(1);}
function fun () {console.log(2);}
fun(); // 1

后面的函数声明并没有替换掉前面的变量声明!基本的结论就但这里了,但是无意中又发现了什么:

console.log(fun); // fun(){}
fun(); // 1 
function fun(){console.log(1);}

不仅仅var会提升 函数声明也会提升!且与var不同 函数声明中 函数体也会被提升!
结论:
函数声明会被提升,且变量声明赋值>函数声明>变量声明不赋值!
加一些彩蛋:

(() => {})(); 
// 等于
(function() {})();
// 等于
function a() {}
a();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 输入类型和权重类型是指深度学习中神经网络的输入和权重数据类型。 设置输入类型时,通常需要根据数据特点选择合适的数据类型,如 float32 或 int64,并将其设置为输入层的 dtype 参数。 设置权重类型时,常见的选择是 float32 或 float64,可以根据模型的精度需求和计算资源限制选择合适的数据类型,并将其设置为权重的 dtype 参数。 例如,在 Keras 框架中,可以使用以下代码设置输入类型和权重类型: ```python from tensorflow import keras inputs = keras.Input(shape=(32,), dtype='float32') x = keras.layers.Dense(64, activation='relu', dtype='float32')(inputs) x = keras.layers.Dense(64, activation='relu', dtype='float32')(x) outputs = keras.layers.Dense(10, activation='softmax', dtype='float32')(x) model = keras.Model(inputs, outputs) ``` ### 回答2: 在机器学习中,输入类型与权重类型的设置对于模型的性能和学习能力非常重要。 首先,输入类型是指输入数据的特征类型,常见的输入类型有数值型、类别型和文本型。对于数值型特征,可以直接使用原始数值作为输入;对于类别型特征,通常需要进行One-hot编码或者Label Encoding处理,将其转化为数值型特征;对于文本型特征,常见的处理方式是使用词袋模型或者词嵌入模型将其转化为数值型特征。 其次,权重类型是指模型中不同特征的重要性。在一些模型中,如线性回归和逻辑回归,可以通过系数或者权重来表示特征的重要性;在神经网络模型中,可以通过调整不同特征的权重来影响模型的学习能力。权重的设置可以根据我们对于不同特征的先验知识或者经验来进行,比如某些特征可能在某个领域的问题中更加重要,我们可以给予其更高的权重。 在设置输入类型和权重类型时,需要考虑具体的问题和数据集的特点。对于输入类型,我们需要根据不同特征的属性进行相应的处理,以保证模型能够充分利用这些特征的信息。对于权重类型,我们可以进行一些先验知识的假设,或者通过调参等方式进行优化,以提升模型的性能。 总结而言,输入类型与权重类型的设置需要根据具体问题和数据的特点进行合理的选择和调整,以提高模型的学习能力和性能。 ### 回答3: 在计算机编程中,输入类型和权重类型是编程语言中常见的设置。输入类型指的是参数或变量的数据类型,而权重类型则是表示参数或变量的重要性或优先级的设置。 设置输入类型的目的是为了确保输入的数据符合预期的格式和类型。不同的数据类型有不同的操作和限制,使用正确的数据类型可以避免出现错误或意外的结果。常见的输入类型包括整数、浮点数、字符串等。在编程中,我们可以通过声明变量时指定其数据类型,或使用类型转换函数来将输入的数据转换为所需的类型。 设置权重类型的目的是为了在处理多个参数或变量时,确定其重要性或优先级。权重类型可以是数值或标记,用于表示不同参数或变量的重要程度。通过设置权重类型,我们可以在编程中进行条件判断、流程控制或数据筛选,确保程序根据不同的权重类型做出相应的处理。 例如,在一个计算机游戏中,有多个角色或任务需要完成,每个角色或任务有不同的重要性。我们可以为每个角色或任务设置一个权重类型,并根据权重类型来决定游戏进行的顺序或优先级。 综上所述,输入类型用于确保输入的数据符合预期的格式和类型,而权重类型用于确定参数或变量的重要程度或优先级。它们都是编程中常见的设置,可以帮助我们处理数据和控制程序的流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值