Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
11.5
12.0
12.1
12.2
12.3
12.4
12.5
13.0
13.1
13.2
Statistic
FMM
Blog
JS.Evaluate
Evaluates a JavaScript expression.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
JavaScript | 10.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
JSRef | The JavaScript reference number. | $js |
JavaScript | A JavaScript expression. | "1+2" |
Result
Returns JSON or error.
Description
Evaluates a JavaScript expression.This may include definition of functions and objects and using them.
Result is converted to JSON and returned.
Examples
Evaluate some expressions:
Set Variable [ $js ; Value: MBS( "JS.New" ) ]
Set Variable [ $r ; Value: MBS( "JS.Evaluate"; $js; "4+5") ]
Show Custom Dialog [ "Result" ; $r ]
Set Variable [ $r ; Value: MBS( "JS.SetGlobalProperty"; $JS; "test"; "\"Hello World\"" ) ]
Set Variable [ $r ; Value: MBS( "JS.Evaluate"; $js; "test + test;") ]
Show Custom Dialog [ "Result" ; $r ]
Set Variable [ $r ; Value: MBS( "JS.Release"; $JS ) ]
Defines and runs a function in JavaScript:
Let([
f = "
function makeCRCTable(){
var c;
var crcTable = [];
for(var n =0; n < 256; n++){
c = n;
for(var k =0; k < 8; k++){
c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
}
crcTable[n] = c;
}
return crcTable;
}
function crc32(str) {
var crcTable = crcTable || (crcTable = makeCRCTable());
var crc = 0 ^ (-1);
for (var i = 0; i < str.length; i++ ) {
crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF];
}
return (crc ^ (-1)) >>> 0;
};
crc32(InputValue);";
j = MBS( "JS.New" );
r = MBS( "JS.SetGlobalPropertyValue"; j; "InputValue"; "Hello World" );
r = MBS( "JS.Evaluate"; j; f );
x = MBS( "JS.Release"; j )
];r)
Initialize JavaScript environment with two functions:
If [ Length($$js) = 0 ]
Set Variable [ $$js ; Value: MBS( "JS.New" ) ]
Set Variable [ $r ; Value: MBS( "JS.Evaluate"; $$js;
"function makeCRCTable(){
var c;
var crcTable = [];
for(var n =0; n < 256; n++){
c = n;
for(var k =0; k < 8; k++){
c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
}
crcTable[n] = c;
}
return crcTable;
}
function crc32(str) {
var crcTable = crcTable || (crcTable = makeCRCTable());
var crc = 0 ^ (-1);
for (var i = 0; i < str.length; i++ ) {
crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF];
}
return (crc ^ (-1)) >>> 0;
};") ]
End If
List global properties:
MBS( "JS.Evaluate"; $$JS; "Object.keys(globalThis);" )
Query now in JavaScript:
MBS( "JS.Evaluate"; $$JS; "performance.now();" )
Measure tikem for a test function:
MBS("JS.Evaluate"; $js; "function testFunction() {
for (var i = 0; i < 1e6; i++) {}
}
var t1 = performance.now();
testFunction();
var t2 = performance.now();
('test took: ' + (t2 - t1) + ' milliseconds');")
See also
- FM.Evaluate
- JavaScript.EvaluateScript
- JS.AddFileMakerEvaluateFunction
- JS.AddFileMakerRunScriptFunction
- JS.AddFileMakerSQLFunction
- JS.EvaluateToString
- JS.New
- JS.Release
- JS.SetGlobalProperty
- JS.SetGlobalPropertyValue
Example Databases
- JavaScript/JavaScript libPhoneNumber
- JavaScript/JavaScript SunCalc
- JavaScript/JavaScript
- List/Sort Benchmark
Blog Entries
- FileMaker and JavaScript - the perfect combination
- Tips for our JavaScript functions
- CRC function in FileMaker using JavaScript
- Our JavaScript engine for FileMaker
FileMaker Magazin
This function checks for a paid license.
Created 7th December 2019, last changed 29th October 2020
