确定文本在字符串中首次出现的位置-indexof()
<script>
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
document.getElementById("demo").innerHTML = pos;
</script>
在字符串中搜索文本并在找到后返回这段文本-match()
<script>
function myFunction() {
var str = "The rain in SPAIN stays mainly in the plain";
var res = str.match(/ain/g);
document.getElementById("demo").innerHTML = res;
}
</script>
注意(在字符串化中执行对字母“ain”(/ain)的全局(/g)搜索,并显示匹配项。)
替换字符串中的字符-replace()
<script>
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var txt = str.replace("Microsoft","W3School");
document.getElementById("demo").innerHTML = txt;
}
</script>
字符串转换为大写-toUpperCase()小写-toLowerCase()
<script>
function myFunction() {
var text = document.getElementById("demo").innerHTML;
document.getElementById("demo").innerHTML = text.toUpperCase();
}
</script>
把字符串拆分入数组-split
<script>
function myFunction() {
var str = "a,b,c,d,e,f";
var arr = str.split(",");
document.getElementById("demo").innerHTML = arr[0];
}
</script>
(数字)加 (数字字符串)的会出现连接的字符串
在除法运,乘法,减法运算时,Java script会尝试把字符串转换成数字。加法时,不会转换,会把他们当作两个字符串产生连接
用非数字字符串进行除法会得到 NaN (他的意思就是 not a number不是一个数),我们可以使用全局javascript函数isNAN()来检测他是不是一个数,会输出 true或者false
<script>
var x = 100 / "Apple";
document.getElementById("demo").innerHTML = isNaN(x);
</script>
如果使用NaN来进行运算最终也会返回NaN,如果是字符串连接,就正常运行连接。NaN的类型是number(用typeof NaN会返回 number)
无穷大Infinity 如果计算出无穷大则会返回无穷大 可以用与判断语句。任何数除以0也会产生Infinity
<script>
var myNumber = 2;
var txt = "";
while (myNumber != Infinity) {
myNumber = myNumber * myNumber;
txt = txt + myNumber + "<br>";
}
document.getElementById("demo").innerHTML = txt;
</script>
toString()方法能够以各种进制输出一个数、
<script>
var mynumber = 255;
document.getElementById("demo").innerHTML =
mynumber.toString(2) + "<br>"
+ mynumber.toString(4) + "<br>"
+ mynumber.toString(6) + "<br>"
+ mynumber.toString(8) + "<br>"
+ mynumber.toString(10) + "<br>"
+ mynumber.toString(16) ;
</script>
使用new Number可以使数字变成对象,但是没有必要把数字创建为对象<script>
var x = 123;
var y = new Number(123);
document.getElementById("demo").innerHTML = typeof x + "<br>" + typeof y;
</script>
测试结果 x 为 数字类型number,y为 对象object
绝对不要把数字创建为对象。
数字和对象无法安全地比较。对象和对象之间也无法安全的比较
valueOf()方法以数字返回数字
<script>
var x = 123;
document.getElementById("demo").innerHTML =
x.valueOf() + "<br>" +
(123).valueOf() + "<br>" +
(100 + 23).valueOf();
</script>
toExponential()可以把一个数变成指数表示法的数字
toFixed()方法将数字四舍五入到指定位数的数字
toPrecision()返回指定长度的数字
Math.random() 0-1之间的随机数
Math.floor() 取整数 ——组合在一起可成为范围随机数
如:Math.floor(Math.random()*10) 0-10
如:Math.floor(Math.random()*100) 0-99
如:Math.floor(Math.random()*1000) 0-999
如:Math.floor(Math.random()*1000)+1 1-1000
如:Math.floor(Math.random()*567) 0-566
范围内取随机数
<button οnclick="document.getElementById('demo').innerHTML = getRndInteger(0,10)">点击我</button>
<p id="demo"></p>
<script>
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
</script>
javaScript 日期
var x = new Date();
document.getElementById("demo").innerHTML = d.getFullYear(); ——获取年份
document.getElementById("demo").innerHTML = d.getTime(); ——获取1970至今的毫秒数
<script>
var d = new Date();
d.setFullYear(2020);
document.getElementById("demo").innerHTML = d;
</script> ————————设置对象日期的年份setFullYear
数组的遍历
<script>
var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
text += "<li>" + fruits[i] + "</li>";
}
text += "</ul>";
document.getElementById("demo").innerHTML = text;
</script>
箭头函数简化函数表达式
const fn = function (name) {
console.log('hello'+ name)
}
和普通的差距,fn被提出来到前面
const fn = name => 'hello' + name
箭头函数简化,等同于下面一个式子
function fn(name) {
return 'helle' + name
}
箭头函数多条语句表达式
const sum = (a,b) => a + b
const sum = arr => {
letresult = 0
for(let v in arr) {
result += v**2
}
return result
}
递归数的阶乘,斐波那契数列
function fn(n) {
if( n === 1)
return 1
else return n*fn(n-1)
}
console.log(fn(6))
function fn(n) { -------------------斐波那契数列
if( n === 1 || n === 2)
return 1
else return fn(n-1) + fn(n-2)
}
console.log(fn(9))