网站首页 > 基础教程 正文
1. 基本概念
Math.sqrt()方法的名字sqrt是"square root"的缩写,它代表的正是平方根。因此,Math.sqrt()方法的作用就是用来求一个数的平方根。它的语法结构如下所示:
Math.sqrt(x);
参数x应该是一个数字,即它的类型应该是Number。如果x不是Number类型的,那么它会先被强制类型转换为Number类型。在数学上要计算一个数的平方根,那么这个数就不能为负数。Math.sqrt()同样要求它的参数不能为负数,但有一个例外,那就是-0;在JavaScript中,-0的平方根就是-0本身。
Math.sqrt()方法的返回值由下面的规则决定,规则中x的值指的是x被转换为Number类型后的值,如果它原本不是Number类型的话。
1. 如果x是NaN,那么结果也是NaN;
2. 如果x是+0,那么结果也是+0;
3. 如果x是-0,那么结果也是-0;
4. 如果x是正无穷(Infinity),那么结果也是正无穷(Infinity);
5. 如果x小于0(包括负无穷,-Infinity),那么结果就是NaN;
6. x为其它大于0的数字,结果为x的平方根。
2. 示例
2.1 参数为正数
我们先来看看用正数调用Math.sqrt()的结果,这也正是我们最常使用Math.sqrt()方法的情况,以下代码的执行结果如图1所示。
<script>
var value1 = Math.sqrt(25);
console.log("Math.sqrt(25) = " + value1);
var value2 = Math.sqrt(3);
console.log("Math.sqrt(3) = " + value2);
var value3 = Math.sqrt(4);
console.log("Math.sqrt(4) = " + value3);
</script>
2.2 参数为特殊值和负数
我们再来看看参数为特殊值和负数的场景,以下代码的执行结果如图2所示。注意在该示例中,我们用单独的一条打印语句来打印-0的平方根。这是因为如果用同一条打印语句来同时打印提示字符串和结果值,那么-0在转换成字符串后就变成0了,打印出的结果会错误地显示-0的平方根为0。
<script>
var value1 = Math.sqrt(NaN);
console.log("Math.sqrt(NaN) = " + value1);
var value2 = Math.sqrt(+0);
console.log("Math.sqrt(+0) = " + value2);
var value3 = Math.sqrt(-0);
console.log("Math.sqrt(-0)的结果在下面一行单独打印:");
console.log(value3);
var value4 = Math.sqrt(Infinity);
console.log("Math.sqrt(Infinity) = " + value4);
var value5 = Math.sqrt(-Infinity);
console.log("Math.sqrt(-Infinity) = " + value5);
var value6 = Math.sqrt(-9);
console.log("Math.sqrt(-9) = " + value6);
</script>
2.3 参数不是数字
最后,我们再来看看参数不是Number类型的情形,此时参数会先被转换为Number类型。
<script>
/* 字符串"16"转换成数字为16 */
var value1 = Math.sqrt("16");
console.log('Math.sqrt("16") = ' + value1);
/* null转化成数字为0(+0) */
var value2 = Math.sqrt(null);
console.log("Math.sqrt(null) = " + value2);
/* 布尔值true转换成数字为1 */
var value3 = Math.sqrt(true);
console.log("Math.sqrt(true) = " + value3);
/* window对象转换成数字为NaN */
var value4 = Math.sqrt(window);
console.log("Math.sqrt(window) = " + value4);
</script>
(完)
猜你喜欢
- 2024-11-04 八年级数学:二次根式的学霸笔记已经悄然来到这个数学江湖
- 2024-11-04 教你5秒钟手撕根号运算 手算根号怎么算
- 2024-11-04 复数的立方根怎么求? 复数的立方根是什么树
- 2024-11-04 高中数学:50个公式,50种快速做题方法!
- 2024-11-04 八年级上学期,勾股数与直角三角形的判定问题,重在理解与计算
- 2024-11-04 23舰队旗舰日野根号(上) 日本“金刚”号铁甲舰
- 2024-11-04 2020年期末复习篇:七年级上学期期末专题3 实数综合
- 2024-11-04 中考圆的轨迹问题,有迹可循,头晕问题破解有招数
- 2024-11-04 一道化简题,有技巧哟 30道化简题
- 2024-11-04 23舰队旗舰日野根号(下)
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)