2020年12月6日 JavaScript知识点整理
js中的null用来表示空的对象。
typeof null object
undefined表示未定义。
typeof undefined undefined
===============
强制数据类型转换:只能转换成String Number Boolean
转换成String
用toString方法:
var a = 123;
a.toString();
toString()不改变变量的值,只是返回转换完的值。
null和undefined没有toString方法
或者:
用string函数
a=String(a);
====================
16进制数字:0x123
8进制数字:070
2进制数字:0b
==================
转换成Number:
Number()函数
parseInt()函数可以把“123px”转换为123(还有parseFloat())
parseInt(字符串,几进制)
==============================
转换成boolean:
Boolean()函数
只有:0,NaN,null,undefined,“”(空字符串)。转换成false。其他都转成true。
==================
typeof 就是一个运算符,不是函数
"abc"+"def"两个字符串相加,可以连起来
==============================
任何值和字符串相加,都会转换为字符串再和字符串相加(比如一个number和空串相加转成字符串)
任何值做 -减法 *乘法 、除法 都是自动转换成数字(也可以利用这个特性做类型转换)
=============================
1+2+"3"从左往右算
====
===================================
js基于浏览器,解释性,不需要编译,基于对象,弱类型
=====================================
js引入方式1内联:
<a href="javascript:alert('you clicked')">Click Me</a>
alert就是弹窗(双引号里只能用单引号)
==========================
console可以查看报错
==========================
js引入方式2内嵌:
<script type="text/javascript">
alert("HELLO!");
</script>
=========================
js代码一行结束一定要加分号,除了if和for语句等
============================
script标签可以任意放,可以放body后面,让页面加载完再执行
=============================
js引入方式3外部引入:
<script type="text/javascript" src="script.js">
</script>
==============================
定义变量:显式定义,隐式定义
=========================
定义字符串的时候可以用单引号也可以用双引号。但是内联双引号里必须用单引号,双引号不能嵌套
======================
\n 反斜杠n 是js里的换行 与 c语言一样
=================================
/*显示定义变量*/
var x = 12;
x = 20;
alert(x);
/*先定义不赋值,不赋值也可以使用*/
var a;
alert(a);/*undefined*/
/*多项定义*/
var a1=6,a2="123",a3;
/*隐式定义:不加var,直接使用*/
yinshi = "hello!!";
alert(yinshi);
/*标识符以:字母,数字,下划线,$ 大小写敏感*/
var c1$2fs;
/*数据类型*/
/*数值类型*/
var number1 = 1;/*整数类型*/
var number2 = 3.4;/*浮点类型*/
/*字符串类型,必须使用单引号和双引号括起来*/
var string1 = "abcd";
var string2 = 'dogdog';
/*布尔型*/
var bool1 = true,bool2 = false;
/*未定义类型 已经创建但是没赋值*/
var ud1;
document.write(ud1);/*undefined*/
document.write("<br>");
/*空类型:null*/
var null1=null;
document.write(null1);
document.write("<br>");
/*对象类型 比如数组*/
/*数据类型转换*/
/*数值类型转字符串*/
var number1 = 12345;
/*数字加字符串等于字符串*/
number1 = number1+"6789";
console.log(typeof number1);/*string*/
console.log("number1 = "+number1);/*number1 = 123456789*/
/*数字类型的toString方法*/
var number2 = 12345;
var string1 = number2.toString();
console.log(string1);
/*字符串转整数类型*/
var number3 = parseInt("123px");
console.log(number3);/*123*/
var number4 = parseInt("px");
console.log(number4);/*NaN*/
/*字符串转浮点型*/
var number5 = parseFloat("123.456cm");
console.log(number5);/*123.456*/
/*用户输入的都是字符串,获取到了以后转换*/
var s1 = "abcdEfg.hiJk";
console.log(s1);//abcdefg
//charAt方法返回第几个字符
console.log(s1.charAt(0));//a
console.log(s1.charAt(3));//d
//把所有字符串里所有字母转换成大写,并返回新字符串
console.log(s1.toUpperCase());//ABCDEFG.HIJK
//返回参数(可以是字符串)在字符串中第一次出现的位置
//加第二个参数可以控制从哪一位开始找
//若找不到返回-1
console.log(s1.indexOf('cd'));//2
console.log(s1.indexOf('cde'));//-1
console.log(s1.indexOf('c',6));
//返回:参数在字符串中最后一次出现的位置
//若找不到返回-1
console.log(s1.lastIndexOf('J'));//10
//返回从第几位到第几位的子字符串。
console.log(s1.substring(2,5));//cdE
//返回从第几位到第几位的子字符串,不是从0开始,切几个写几,但是可以写负数,就像切割一样
console.log(s1.slice(3,-4));//dEfg
console.log(s1.slice(-3,-1));//iJ
//将一部分内容换成另一部分,返回改变后的新字符串
s1 = s1.replace('abcd','zzz');
console.log(s1);//zzzEfg.hiJk
正则表达式实例:
//匹配所有
var r =/./;
var f1 = r.test("ABC123");
console.log(f1);
//满足规则输出true
//匹配0-9
var r1=/\d/;
var f2=r1.test("abc123");
console.log(f2);
//字符串包含了数字所以输出为true
//小写和大写一般都是相反如:\d \D
var r2=/\W/;
var f3=r2.test("abc");
console.log(f3);
//[abc]中括号里的内容
var r3=/[a-zA-Z]/;
var r3=/^[0-9]/;//^是亦或
var f4 = r3.test("123");
console.log(f4);
//规则:6位的数字
var pwd="5553137";
var r4=/^[0-9]{6}$/;
var f5=r4.test(pwd);
console.log(f5);
//手机号 11位 第一位必须是1 第二位是:35789中的一位
var pm = "13745323455";
var r5 = /^[1][35789][0-9]{9}$/;
console.log(r5.test(pm));
//邮箱 xxxx@xxx.com 用\进行转义
var email = "green@blue123.com";
var r6 = /^[\w]+[@][A-z0-9]+\.[A-z]+$/;
console.log(r6.test(email));
//不区分大小写
var f8=r7.test("JAva");
var r7=/java/i;
console.log(f8);

浙公网安备 33010602011771号