functionrgbToHex(red, green, blue){if(typeof red !=="number")thrownewTypeError("Expected numeric 'red' value");if(typeof green !=="number")thrownewTypeError("Expected numeric 'green' value");if(typeof blue !=="number")thrownewTypeError("Expected numeric 'blue' value");if(red <0|| red >255)thrownewRangeError("Expected 'red' value between 0 and 255 (inclusive)");if(green <0|| green >255)thrownewRangeError("Expected 'green' value between 0 and 255 (inclusive)");if(blue <0|| blue >255)thrownewRangeError("Expected 'blue' value between 0 and 255 (inclusive)");var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}
if(typeof red !=="number")thrownewTypeError("Expected numeric 'red' value");if(typeof green !=="number")thrownewTypeError("Expected numeric 'green' value");if(typeof blue !=="number")thrownewTypeError("Expected numeric 'blue' value");
JavaScript
如果我们没有提供数字作为参数,我们会用'throw'语句产生一个运行时错误。
接下来的三行检查这些数字是否符合0到255的范围。
if(red <0|| red >255)thrownewRangeError("Expected 'red' value between 0 and 255 (inclusive)");if(green <0|| green >255)thrownewRangeError("Expected 'green' value between 0 and 255 (inclusive)");if(blue <0|| blue >255)thrownewRangeError("Expected 'blue' value between 0 and 255 (inclusive)");
external alert;
external TypeError, RangeError;functionrgbToHex(red, green, blue){if(typeof red !=="number")thrownewTypeError("Expected numeric 'red' value");if(typeof green !=="number")thrownewTypeError("Expected numeric 'green' value");if(typeof blue !=="number")thrownewTypeError("Expected numeric 'blue' value");if(red <0|| red >255)thrownewRangeError("Expected 'red' value between 0 and 255 (inclusive)");if(green <0|| green >255)thrownewRangeError("Expected 'green' value between 0 and 255 (inclusive)");if(blue <0|| blue >255)thrownewRangeError("Expected 'blue' value between 0 and 255 (inclusive)");var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}alert(rgbToHex(255,255,255));
external alert;functionrgbToHex(red, green, blue){var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}alert(rgbToHex(255,255,255));
external alert;functionrgbToHex(byte red, byte green, byte blue){var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}alert(rgbToHex(255,255,255));
external alert;
string rgbToHex(byte red, byte green, byte blue){var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}alert(rgbToHex(255,255,255));
JavaScript
现在,函数内部的所有'返回'语句必须返回一个评估为字符串数据的表达式。
最后但同样重要的是,看看这些语句。
var r = red.toString(16);var g = green.toString(16);var b = blue.toString(16);
external alert;
string rgbToHex(byte red, byte green, byte blue){
string r = red.toString(16);
string g = green.toString(16);
string b = blue.toString(16);while(r.length <2) r ="0"+ r;while(g.length <2) g ="0"+ g;while(b.length <2) b ="0"+ b;return"#"+ r + g + b;}alert(rgbToHex(255,255,255));