当前位置:网站首页>JS pure function
JS pure function
2022-07-06 08:29:00 【Wind billows】
Pure function
1. This function when the same input value , Always produce the same output . The output of the function is independent of the context state of the current running environment .
Pure functions are like functions in Mathematics , Function maps input parameters to return values , in other words , For each set of inputs , There is an output .
function test(a){
console.log(a*a);
}
test(10);
test(10);
test(10);
test(10);
2. The running process of this function does not affect the running environment , That is, no side effects ( Such as trigger event 、 launch http request 、 Print /log etc. ).
A function execution process produces externally observable changes to , Then say , This function has side effects . and Pure functions do not produce any observable side effects , That is, it cannot change any external state .
var num = 18;
function compare(x){
return x > num;
}
console.log(compare(20))
// Not a pure function
// Revise it
var num = 18;
function compare(x){
return x > 18;
}
console.log(compare(20))
// Pass two parameters
var num = 18;
function compare(x,num){
return x > num;
}
console.log(compare(20,num))
// Not using external num But within its scope num
3. If it's a reference type ?
var arr = [];
function add(_arr){
var obj = {
name:'cts'};
_arr.push(obj);
return _arr;
}
add(arr);
console.log(arr);
// Not a pure function Reference type
// Revise it
var arr = [{
name:'bailibn'}];
function add(_arr){
var obj = {
name:'cts'};
// Create a new arr
var newArr = [];
// take arr Clone the contents of
for(var i = 0;i<_arr.length;i++){
// Clone by cloning
newArr[i] = _arr[i];
}
newArr.push(obj);
return newArr;
}
console.log(add(arr))
// To simplify the
function add(x,y){
return x+y;
}
var num1 = 1;
var num2 = 2;
add(num1,num2);// Pure function
var GArr = [];
function add(arr){
arr.push(1);
return arr;
}
add(gArr);// Not a pure function
// A lot of bullshit , What's the use of pure functions ?
Simply speaking , That is, when the output of a function is not affected by the external environment , At the same time, it does not affect the external environment , This function is a pure function , That is, it only focuses on logical operations and mathematical operations , The same input always gets the same output .
javascript Built in functions have many pure functions , There are also many non pure functions .
Pure function :
Array.prototype.slice
Array.prototype.map
String.prototype.toUpperCase
Meromorphic function :
Math.random
Date.now
Array.ptototype.splice
Pure function action
JavaScript It is easy to create global variables in , These variables can be accessed in all functions . This is also a cause bug Common causes of , Because any part of the program may modify global variables, resulting in abnormal bold style of function behavior Pure functions are very easy to unit test , Because you don't need to think about context , Just consider the inputs and outputs边栏推荐
- logback1.3. X configuration details and Practice
- leetcode刷题 (5.31) 字符串
- leetcode刷题 (5.29) 哈希表
- Synchronized solves problems caused by sharing
- LDAP application (4) Jenkins access
- Introduction to backup and recovery Cr
- China high purity silver nitrate Market Research and investment strategy report (2022 Edition)
- [2022 Guangdong saim] Lagrange interpolation (multivariate function extreme value divide and conquer NTT)
- Restore backup data on S3 compatible storage with br
- 使用 Dumpling 备份 TiDB 集群数据到兼容 S3 的存储
猜你喜欢
Online yaml to CSV tool
Chinese Remainder Theorem (Sun Tzu theorem) principle and template code
Configuring OSPF load sharing for Huawei devices
[cloud native topic -45]:kubesphere cloud Governance - Introduction and overall architecture of enterprise container platform based on kubernetes
[research materials] 2021 Research Report on China's smart medical industry - Download attached
Cisp-pte practice explanation
Zhong Xuegao, who cannot be melted, cannot escape the life cycle of online celebrity products
Convolution, pooling, activation function, initialization, normalization, regularization, learning rate - Summary of deep learning foundation
Synchronized solves problems caused by sharing
Verrouillage [MySQL]
随机推荐
远程存储访问授权
Verrouillage [MySQL]
[MySQL] lock
[brush questions] top101 must be brushed in the interview of niuke.com
Use dumping to back up tidb cluster data to S3 compatible storage
1204 character deletion operation (2)
China Light conveyor belt in-depth research and investment strategy report (2022 Edition)
Leetcode skimming (5.29) hash table
Introduction to backup and recovery Cr
Ruffian Heng embedded bimonthly, issue 49
[secretly kill little partner pytorch20 days -day01- example of structured data modeling process]
logback1.3. X configuration details and Practice
MySQL learning records 12jdbc operation transactions
LDAP Application Section (4) Jenkins Access
[cloud native] teach you how to build ferry open source work order system
China dihydrolaurenol market forecast and investment strategy report (2022 Edition)
JS select all and tab bar switching, simple comments
[MySQL] log
从 SQL 文件迁移数据到 TiDB
Restore backup data on S3 compatible storage with br