首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

50道JavaScript详解面试题,你需要了解一下

6、数组对象是JavaScript中的原始对象? 在JavaScript中,我们处理的大多数事物都是对象,类似地,数组只是JavaScript中的特殊对象,它们具有其他对象没有的属性。...答案是C,当我们需要等待执行直到所有的都被解决,Promise.all()会非常有用。 13、控制台输出是什么,为什么? 在这种情况下,我们有&运算符,它与&&运算符完全不同。...20、创建字符串后,我们可以修改? 不可以,因为字符串在JavaScript中是不可变的,指向字符串的变量可以分配给另一个字符串。 21、承诺链中的嵌套捕获可以捕获在承诺链中向上抛出的错误?...控制台输出将为10和5,因为该函数在Promise中没有异步的内容,并且Promise同步解析。 32、在浏览器下一次重画显示内容之前,哪个函数会执行指定的代码块?...运算符返回一个布尔值。真的? 是的,例如,在if语句中,需要在评估中返回一个布尔值,例如if(a!== b)。 50、JavaScript中的哪个ES6函数返回一个新数组?

3.5K40

js中的值类型和引用类型的区别

堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量引用(方法的参数传递很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它,系统的垃圾回收机制才会在核实的时候回收...(根据的原型链来识别)的实例,那么instanceof 操作符就会返回 true。...复制基本类型的过程: 当从一个变量向另一个变量复制引用类型的值,同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中。...在向参数传递引用类型的值,会把这个值在内存中的地址复制给一个局部变量,因此这个局部变量的变化会反映在函数的外部。...实际上,当在函数内部重写 obj ,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。

3.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

深度学习不只是“Import Tensorflow”(下)

当我们增加输入的数量,我们的方程开始在越来越高的维度上建模线性关系。...它最终将建立一个i维超平面的模型,这相当于i维空间中的一条直线。 (如果你不能想象,不要担心,因为我也不能)。 到目前为止,我们概述的函数仅适用于神经网络一层中的单个节点。...一个神经网络模型之间的关系,只有三输入可能最终会像这样: ? 但是,像上面显示的非线性平面这样简单的东西,可以由人类来计算。我们真的不需要一个神经网络来模拟三维空间的功能。...但是当我们开始处理越来越多的变量并进入越来越高的维度,神经网络变得非常有用。我的意思是,我们怎么会想出一个能精确映射上千变量的模型呢? 答案是——我们没有。这就是神经网络的作用!...你绝对是传奇。我没有耐心读完所有的东西(考虑到是我写的,这很有趣)。你真棒! 更重要的是,现在除了导入TensorFlow之外,您对神经网络如何工作有了更直观的理解。

43620

PHP 引用是坑,请慎用

函数改变了,它有了新值。该函数返回一个变量,我们更改了返回变量和它的原始值。。。等等!没变,不是!?—— 没错,可引用就是这样。...具体发生了如下事情:该函数返回一个引用,引用了 $a 的变量容器 zval,并且通过 = 赋值操作符为创建了一个副本。...当一个对象赋值给变量变量不再存储整个对象(属性表和其他的『类』信息),而是存储这个对象所在 存储器的引用 —— 当我们复制一个对象变量,我们复制的是这个『存储器的引用』。...使用引用来完成事情的第三问题是:通过参数的引用来返回数据导致的糟糕的 API 设计。这个问题还是因为那个开发者没有意识到『PHP 就是 PHP 而不是其他语言』导致的。...在 PHP 中,同一个函数可以返回不同数据类型。—— 因此,你可以在函数执行成功返回一个字符串,而在失败返回一个布尔值 false,PHP 也允许返回复杂的结构类型,比如数组和对象。

1.2K20

为何说PHP引用是坑,要慎用

函数改变了,它有了新值。该函数返回一个变量,我们更改了返回变量和它的原始值。。。 等等!没变,不是!? —— 没错/ /,可引用就是这样。...具体发生了如下事情:该函数返回一个引用,引用了 $a 的变量容器 zval,并且通过 = 赋值操作符为创建了一个副本。...当一个对象赋值给变量变量不再存储整个对象(属性表和其他的『类』信息),而是存储这个对象所在 存储器的引用 —— 当我们复制一个对象变量,我们复制的是这个『存储器的引用』。...使用引用来完成事情的第三问题是:通过参数的引用来返回数据导致的糟糕的 API 设计。这个问题还是因为那个开发者没有意识到『PHP 就是 PHP 而不是其他语言』导致的。...在 PHP 中,同一个函数可以返回不同数据类型。—— 因此,你可以在函数执行成功返回一个字符串,而在失败返回一个布尔值 false,PHP 也允许返回复杂的结构类型,比如数组和对象。

50920

2023阿里巴巴面试真题

使用原子变量实现线程同步 7、一个对象的两方法加 synchronized,一个线程进去 sleep,另一个线程可以进入到另一个方法?...其实调用outer 的线程已经获取了lock 锁,但是不能在 inner 中重复利用已经获取的锁资源,这种锁即称之为不可重入可重入就意味着:线程可以进入任何一个已经拥有的同步着的代码块。...23、栈会溢出?什么时候溢出?方法区会溢出? 栈是线程私有的的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作数栈,动态链接,方法出口等信息。...应用场景: JDBC 连接 Session 管理 Spring 事务管理 调用链,参数传递 AOP ThreadLocal 是一个解决线程并发问题的一个类,用于创建线程的本地变量,我们知道一个对象的所有线程会共享的全局变量...但是当我们不想使用同步的时候,我们可以选择 ThreadLocal 变量。例如,由于 JDBC的连接对象不是线程安全的,因此,当多线程应用程序在没有协同的情况下,使用全局变量,就不是线程安全的。

14920

【Angular专题】——(2)【译】Angular中的ForwardRef

问题点在哪里 先做一个小声明,我们现在拥有一个AppComponent,并使用DI系统向其中注入了一个NameService,因为我们使用的是Typescript,所以需要做的工作就是在构造函数的参数中声明变量...不对Class定义进行提升的理由 先来理解一下Javascript语言的机制,Javascript解释器不进行类的提升,是因为变量提升会导致在使用extend关键字实现继承时会导致错误,例如当被继承者是一个合法的函数表达式...} class Dog extends Animal { } defaultMove = "moving"; dog = new Dog(); dog.move(); 然而,如果将Animal从一个函数声明改变成一个函数表达式...,然后返回一个class,因为这个函数并不是立即被调用的,而是在NameService声明之后才会安全地返回NameService,也就是说当()=>NameService执行的时候,NameService...小结 这个场景并不会经常出现,一般只在当我们想要注入在同一个文件中声明的类才会发生,大多数情况下我们在一个文件中只会声明一个类,并且会在文件的头部引入其他依赖的类,以此来保证不会被class不进行变量提升的特性造成困扰

3.2K20

python面试题目及答案(数据库常见面试题及答案)

指定了一个代码块。循环,类,函数等中的所有代码都在缩进块中指定。通常使用四空格字符来完成。如果您的代码没有必要缩进,它将无法准确执行并且也会抛出错误。 Q15、Python数组和列表有什么区别?...当我们不确定将多少参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数,我们使用* args。...**当我们不知道将多少关键字参数传递给函数使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用* bob和** billy。...这两函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。...浅拷贝允许更快地执行程序,取决于使用的数据的大小。 深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。引用一个对象,并存储一些其他对象指向的新对象。

11.2K20

nicegui功能代码基本组织方式

因此,我们通过调用一个 save_data 函数,把逻辑转移出去。 利用函数的入参和返回值,完成模块之间的通信 行18:把返回显示。...如果我告诉你,里面就是把数据写入数据库,你觉得有可能? 实际上,的代码是这样: 是的,对于界面代码来说,这个函数里面的代码逻辑不重要。界面根本不关心到底是不是把数据写入了数据库。...比如,要求提交按钮只有在两输入框都有内容,才可以被点击 现在看看怎么实现第二点: 行31:我们需要在其他的事件中使用按钮,得定义变量"接住"按钮对象 行32:一开始禁用按钮 行28-29:绑定两输入框的变化事件...这就是界面模块调用的入口 这里为了方便演示,用了全局变量并且业务代码与界面代码写在同一个文件。你当然可以通过定义类等方式组织代码 当我们添加了一个 todo 任务后,下方应该显示当前所有的任务信息。...如果直接调用函数本身,则会重新创建了一个"刷新区域" 下面是一个简单示意图: 如果多次调用函数(上图绿色部分),则会创建多个独立的区域 一旦调用函数的 refresh 方法,则会触发所有的区域进行刷新(

22510

吐血总结!50道Python面试题集锦(附答案)「建议收藏」

指定了一个代码块。循环,类,函数等中的所有代码都在缩进块中指定。通常使用四空格字符来完成。如果您的代码没有必要缩进,它将无法准确执行并且也会抛出错误。 Q15、Python数组和列表有什么区别?...当我们不确定将多少参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数,我们使用* args。...**当我们不知道将多少关键字参数传递给函数使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用* bob和** billy。...这两函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。...浅拷贝允许更快地执行程序,取决于使用的数据的大小。 深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。引用一个对象,并存储一些其他对象指向的新对象。

10.4K10

100Python面试问题集锦

指定了一个代码块。循环,类,函数等中的所有代码都在缩进块中指定。通常使用四空格字符来完成。如果您的代码没有必要缩进,它将无法准确执行并且也会抛出错误。 Q15、Python数组和列表有什么区别?...当我们不确定将多少参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数,我们使用* args。...**当我们不知道将多少关键字参数传递给函数使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用* bob和** billy。...这两函数之间的区别在于前者返回已删除的值,而后者则不返回。 Q48、Python有OOps概念? Python是一种面向对象的编程语言。这意味着可以通过创建对象模型在python中解决任何程序。...浅拷贝允许更快地执行程序,取决于使用的数据的大小。 深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。引用一个对象,并存储一些其他对象指向的新对象。

9.8K20

彻底搞定C语言指针(精华版)

座位可以是按一个座位一个号码的从一号开始编号,内存则是按一个字节一个字节进行编址, 如上图所示。每个字节都有编号,我们称之为内存地址。好了,我说了这么多,现在你能理解内存空 间这个概念?...我要在屏幕上显示变量的地址值的话,可以 写如下代码: printf(“%d”,&i); 以上图的内存映象例,屏幕上 显示的不是i值30,而是显示i的内存地址编号6了。...由图示中可以看出,我们使用int *Pi申明指针变量; 其实是在内存的某处 申明一个一定宽度的内存空间,并把命名为Pi.你能在图中看出pi与前面的i,a 变量有什么本质区别 没有,当然没有!...MyFun函数 { printf (“%dn”,x); } 这个MyFun函数一个返回值的函数并不完成什 么事情。...//申明一个用以指向同样参数,返回函数 的指针变量

94130

Python入门到放弃 | 超简单 跟我学(八)

如果它不是一个编译模块(即用 Python 编写的模块),那么 Python 解释器会在的 sys.path 变量中列出来的目录中寻找。...__version__ = '1.0' 上面这个是一个 模块 的例子。正如你看见的这样,比起我们普通的 Python 程序,没有什么特别不一样的地方。...dir函数 内置的 dir() 函数能以列表的形式返回某个对象定义的一系列标识符。如果这个对象是模块,返回的列表中会包含模块内部所有的函数、类和变量。 这个函数接收一个可选的参数。...当参数是模块名函数返回对应模块的标识符列表。没有参数则会返回当前模块的标识符列表。...当我们通过 del 语句在当前模块中移除变量后,再次调用 dir 函数,可以发现输出列表也改变了,'a' 被移出了列表。 关于 del 的一点注释:这行语句执行后用于 删除 一个变量或标识符。

83010

Python学习笔记(六)·面向对象编程

和静态语言不同,Python 允许对实例变量绑定任何数据,也就是说,对于两实例变量,虽然它们都是同一个类的不同实例,但拥有的变量名称都可能不同: >>> bart = Student('Bart Simpson...__name 'Bart Simpson' 6.3 继承和多态 在 OOP 程序设计中,当我们定义一个 class 的时候,可以从某个现有的 class 继承,新的 class 称为子类(Subclass...要理解多态的好处,我们还需要再编写一个函数,这个函数接受一个Animal类型的变量: def run_twice(animal): animal.run() animal.run() 当我们传入...返回对应的 Class 类型。...6.4.3 使用 dir() 如果要获得一个对象的所有属性和方法,可以使用dir()函数返回一个包含字符串的 list,比如,获得一个 str 对象的所有属性和方法: >>> dir('ABC')

56120

【C语言】卍字通晓→函数+递归

隐含顺序:如果程序通常先从用户那里读取数据,然后再从一个文件中读取辅助数据,在设计系统编写一个函数,隐含哪一个首先执行的信息。...函数的声明和定义  函数的声明就是告诉编译器我这里是有一个函数的,的参数和返回类型也要告诉编译器,那么这就够了。这个时候编译器就知道你这个函数已经声明了,就不会再不知道你没有这个函数。...那么在主函数调用你这个函数自然而然是一点问题都是没有的。...形参字符型指针变量str指向的不就是这个字符串。那么这个拿到字符串的第一个长度是很容易的,因为我们一开始str就是从第一个字符拿到的不是?刚好可以进行判断它是不是'\0',如果不是就继续执行!...但是,用递归实现的话会有一个非常大的缺点:效率低下(算法的运行速度比较慢),尤其是当我们输入的n较大

72910

进阶 | 函数函数式编程

同样的道理,当我们使用变量声明的方式来声明函数,就是我们常常说的函数表达式。函数表达的提升方式与变量声明一致。...而匿名函数,顾名思义,就是指的没有显示进行赋值操作的函数的使用场景,多作为一个参数传入另一个函数中。 在上面的例子中,fn的第一个参数传入了一个匿名函数。...虽然该匿名函数没有显示的进行赋值操作,我们没有办法在外部执行上下文中引用到,但是在fn函数内部,我们将该匿名函数赋值给了变量bar,保存在了fn变量对象的arguments对象中。...实际上结论仍然是按值传递,只不过当我们期望传递一个引用类型,真正传递的,只是这个引用类型保存在变量对象中的引用而已。为了说明这个问题,我们看看下面这个例子。...函数式编程强调没有"副作用",意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。 即所谓的只要是同样的参数传入,返回的结果一定是相等的。

33330

C语言——指针(五)

当我们改变该地址空间的数据后,尽管子程序调用结束,但是数据的改变情况也会被保留下来。 看下面这段代码,利用swap函数能实现实参a和b的交换?...); 如:int * fun(int x, int y); 表示fun是具有两整型参数且返回整型指针的函数返回的指针值指向一个整型数据。...assert()宏接受一个表达式作为参数: ●如果表达式为真(返回值非零),assert不会产生任何作用,程序继续执行。...●如果表达式为假(返回值为零),assert() 就会报错,在标准错误流stderr中写入一条错误信息,显示没有通过表达式(包含这个表达式的文件名和行号) 2,assert的禁用 上面谈到了用assert...当程序没有问题,我们不需要assert的时候,只需在#include的语句前面定义一个宏NDEBUG 例如 #define NDEBUG #include 这时候再编译程序

6410

学Python,还不知道main函数

,我们可以看到,定义了一个名为 main() 的函数,下面是一个条件 if 语句,检查 __name__ 的值,并将其与字符串 __main__ 进行比较,当为 True ,就会执行 main()。...Python 文件导入到另一个文件 无论我们选择哪种执行模式,Python 都会定义一个名为 __name__ 的特殊变量,其中包含一个字符串。...正如我们前面看到的,这个字符串的值取决于代码的执行方式。 有时当我们从模块导入时,我们想知道特定模块的函数是否被用作导入,或者只是使用该模块的原始 .py(Python 脚本)文件。...get_got 的函数返回存储在变量 data 中的字符串。...我们还定义了一个名为 demo 的函数,包含一段代码,可以在必要复用。此外我们还更改了条件块,使其执行 main()。

54210

这竟然是Python标准库,实用却很少人使用的技巧

前言 你用过 python 的标准库 functools 的 partial 函数? 你用过 python 的一个关键字 nonlocal ? 那么他们两者结合能做到什么功能?...从一个简单需求开始: 希望 print 的时候,每个内容的分隔符使用逗号。可以通过 sep 参数设置即可 但是每次调用都需要设置 sep 参数,很麻烦。...行4:partial 函数接受无限参数,因为被包装的函数的参数是不固定的 第一个参数非常重要,指定了被包装的函数(上图的 axes.text) 他的返回就是一个全新的函数,这个函数与被包装的函数有一样的行为...(行1中的 func 和 kws) 当不知名函数被调用时,合并预设和即时传入的参数字典,调用真正的被包装函数 如下是整个调用过程: 当我们调用 my_partial ,只是执行了红色框的代码,绿色框里面的代码并没有执行...当我们调用 myprint ,都是执行了一次绿色框中的函数逻辑 知道这些有啥用?

32420
领券