JS

1.可以将JS代码写在超链接的herf,这样点击超链接时就会执行JS代码。
eg:<a href="javascript;;”>

2.JS中严格区分大小写

3.字面量和变量

字面量:不可改变的值,即常量。
变量可以用来保存字面量。
eg:x=1-----------x就是变量,1就是字面量。

4.标识符

在JS中所有的可以自主命名的都是标识符。
标识符由字母、数字、下划线、$符组成
标识符不能以数字开头
标识符不能是ES中的关键字和保留字。
标识符一般采用采用驼峰命名法。即首字母小写,每个单词的开头字母大写,其余字母小写。
JS底层保存标识符都是采用Unicode编码。

5.字符串(String)

数据类型就是字面量的类型
JS的6种数据类型:
String(字符串)、number(数值)、boolean、null(空)、undefined(未定义)、object(对象)
前四种是基本数据类型,object是引用数据类型
字符串可以用双引号或单引号引起来
引号不能嵌套,双引号不能套双引号,单引号不能套单引号。
在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义
eg:\”表示",‘表示’,,\表示
var a=“123”;
var b=“hello”;

6.Number

在JS中所有的数值都是Number类型,包括整数和浮点数。
可以使用typeof来检查一个变量的类型。语法:typeof 变量
检查字符串时会输出string,检查数字输出number。
JS中可以表示数字的最大值:
方法: Number.MAX_VALUE:1.7976931348623157e+308
最小值:Number.MIN_VALUE:5e-324
NaN也是一个数字,表示 Not A Number,typeof输出number
Infinite表示正无穷。typeof输出number
如果使用JS进行浮点运算,可能得到一个不精确的结果。
var a=123;
var b=12.2;

7.Boolean

true,flase
var a=true;
console.log(a);---------true
typeof结果为boolean

8.null和undefined

null这个值专门用来表示一个空对象
使用typeof检查一个null值时,会返回object
当声明一个变量,不给它赋值时,它的值就是undefined
使用typeof检查一个null值时,会返回undefined

9.强制类型转换
(1)其他类型转换为String
方法一:
调用被转换数据类型的toString()方法
该方法不会影响到原变量,他会将转换结果返回。所以原变量是什么类型还是什么类型,可以定义一个变量接收转化结果。
注意,null和defined这两个值没有toString方法,如调用他们的方法会出错。
方法二:
调用String()函数
他会将null转为"null"
将indefined转为"undefined"
(2)其他类型转换为Number
转换方式一:
使用Number()函数
字符串转数字
如果是纯数字的字符串,则直接将其转化为数字
如果字符串中含有非数字的字符,则转化为NaN
如果字符串是一个空串或者是全是空格的字符串,则转化为0
布尔值转数字
true—1
false—0*/
null-----0
/undefined----NaN

    方法二:
	这种方式专门用来对付字符串
        parseInt()---转为int
        parseFloat()
 a="123px";
        a = parseInt(a);
        console.log(typeof a);
        console.log(a);

结果:
在这里插入图片描述

    a="123.4r6";
    a = parseInt(a);
    console.log(typeof a);
    console.log(a);

结果:
在这里插入图片描述

 a="123.46";
        a = parseFloat(a);
        console.log(typeof a);
        console.log(a);

在这里插入图片描述

(3)其他转为boolean
使用Boolean()函数
数字转boolean:除了0和NaN,都是true
字符串转boolean:除了空串,其余都是true
null和undefined----flase
对象-----true

10.算术运算符
+、-、*、/、%
1.当对非number的值进行运算时,都会把非number的值转化为number在运算
var a=true+flase;
a的结果为1
var b=true+1
b得结果为2
var c=100-true
结果为99
var d=100-“1”
结果为99
除了和字符串做加法运算,其它的运算都会把类型转为number在进行运算
任何值做 -、 *、/运算时都会自动转换为number,我们可以利用这一特点做隐式的类型转化,
可以通过为一个值-0、*1、/1来将其转换为number,原理和Number()函数一样,但是使用起来简单。但是还有更简单的方法。
2.任何值和NaN做运算都得NaN
3…如果对两个字符串做加法运算,会拼接成一个字符串
任何值和字符串做加法运算都会转换成字符串然后再做拼接运算

可以通过任意一个数据类型加上一个空串(“”)转化为String类型。这是一种隐式的类型转换。这种方法常用。

11.一元元素符
一元运算符:只需要一个操作数
+:正号,相当于正数的正号,不会对数字产生任何影响。
-:可以对数字进行取反
对于非number类型的值,会把非number的值转为number,再运算。
可以对一个其他数据类型使用+,来将其转为number,它的原理和Number()函数一样

 var result= 1 + +"2" + 3;
        console.log(result);//6
  var result= "1" + "2"  + "3";
        console.log(result);123

12.自增自减
在这里插入图片描述

    //20+22+22
        var r = c++ + ++c + c;
        console.log(r);//64

13.逻辑运算符
三种逻辑运算符:
!、&&、||
(1)!:非
-!可以用来对一个值进行非运算
-所谓非运算就是对一个布尔值进行取反操作
!true变flase flase变true
–如果对一个值进行两次取反,它不会变化
–如果对非布尔值进行运算,则会将其转为布尔值在进行取反
–可以利用该特点,将一个其他的数据类型转化为布尔值,可以为任意一个数据类型进行两次取反转换为布尔值。
原理和Boolean()函数一样

var a = "123";
        a = !!a;
        console.log(a);//true

(2)&&
&&与
-&&可以对符号两侧的值进行运算并返回结果
–运算规则
–两个值中只要有一个值为flase就返回flase,两个值都为true才返回true。
–“与”中的短路运算:如果第一个值为flase,就不会看第二个值

var a = true;
         true && alert("111");//会弹出111
        false && alert("111");//不会弹出111

(3)||
||或
–||可以对符号两侧的值进行运算并返回结果
–运算规则
–两个值中只要有一个值为true就返回true,两个值都为flase才返回flase。
–“或”中的短路运算:如果第一个值为true,就不会看第二个值

 var a = true;
        true || alert("111");//不会弹出111
        false || alert("111");//会弹出111

14.非布尔值的与或运算
& ||非布尔值的情况
对于非布尔值进行与或运算时,会先将其转为布尔值,然后进行运算,并且返回原值
与运算时,如果第一个值为true,则必然返回第二个值,如果第一个为flase,则直接返回第一个值

var a = 1 && 2;
          console.log(a);//2
           a = NaN && 0;
        console.log(a);//NaN

或运算时,如果第一个值为true,则直接返回第一个值,如果第一个为flase,则返回第二个值

var a = 1 || 2;
        console.log(a);//1
        a = NaN || 0;
        console.log(a);//0
		a = "" || "hello";
        console.log(a);//hello

15.赋值运算符
=、+=、-=、*=、/=、%=

16.关系运算符
“>、>=、<、<=”:
比较两数值之间的大小关系,如果成立返回true,不成立返回flase。(这个没什么特殊的)

非数值比较:会先转换为数字,在进行比较
hello转为数值是NaN。注意:任何值和NaN比较都是flase
console.log(10 > “hello”);//flase
console.log(true > false);//true
如果符合两侧的值都是字符串的话,不会转化为数字比,而是比较的是字符串中字符的unicode编码
console.log(“11” < “5”);//true
console.log(“a” < “b”);//true
比较字符编码时,是一位一位的比,如果两位一样则比较下一位,所以借用它来对英文进行排序
console.log(“abc” < “b”);//true
console.log(“bbc” < “bcd”);//true
console.log(“abc” < “b”);//true
console.log(“bbc” < “bcd”);//true
如果比较两个字符串型的数字时,可能会得到不可预期的结果。
注意:在比较两个字符串型的数字时,一定一定一定要转型
console.log(“123345555” < +“5”);//flase,+号就可以把字符串型转为数值型,有一个是数值就可以比较了
console.log(“123345555” < “5”);//true

16.Unicode编码
(1)在字符串中使用转义字符输出Unicode编码:\u四位编码(十六进制)
eg:
console.log("\u2620");
输出:
在这里插入图片描述
(2)在网页中使用Unicode编码:&#编码(十进制的)

  <h1 style="font-size: 50px;">&#9760;</h1>
  

输出:
在这里插入图片描述
17.相等运算符
相等运算符==:比较两个值是否相等,相等返回true,否则返回flase
var a = 10;
console.log(a == 4);//flase
(1)当使用==来比较两个值时,如果值的类型不同,则会自动进行类型转换,将其转化为相同的类型然后在比较。一般都转为Number
console.log(“1” == 1);//true
console.log(true == “1”);//true,将字符串和布尔值转为number比较
console.lo(true == “hello”);//flase
(2)undefined衍生自null,所以这两个值做相等判断时会返回true
(3)NaN和任何值都不相等,包括它本身

 //判断b的值是否为NaN
        var b = NaN;
        console.log(isNaN(123));//flase
        console.log(isNaN(b));//true

isNaN函数:
isNaN() 函数可用于判断其参数是否是 NaN,该值表示一个非法的数字(比如被 0 除后得到的结果)。

如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符。正因为如此,isNaN() 函数是必需的。

提示和注释
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。


<script>

document.write(isNaN(123));
document.write(isNaN(-1.23));
document.write(isNaN(5-2));
document.write(isNaN(0));
document.write(isNaN("Hello"));
document.write(isNaN("2005/12/12"));

</script>

输出:

false
false
false
false
true
true

不相等运算!=:
不相等也会对变量进行自动的类型转换,如果转换后相等返回flase,转换后不相等返回true
console.log(“b” != 0);//true
全等:用来判断两个值是否全等,和相等类似,但不会进行自动的数据类型转换,如果两个值的类型不同,直接返回flase
console.log(“123” === 123);//flase
console.log(undefined == null);//true
console.log(undefined === null);//flase
不全等:用来判断两个值是否不全等,和不相等类似,但不会进行自动的数据类型转换,如果两个值的类型不同,直接返回true
console.log(“1” != 1);//flase
console.log(“1” !== 1 );//true

17.条件运算符(三元运算符)
条件表达式?语句1:语句2
运算符的优先级有一个表,如果不清楚优先级可以使用括号,改变优先级,完成自己想要操作的结果

在这里插入图片描述

18.代码块
一个{}里的就是代码块。注意,在js中{}只有分组作用,没有其他作用,{}里声明的变量对{}外是可见的

19. 条件判断语句(if语句)

语句后执行的语句最好都加上大括号
语法一:
if(条件表达式){
语句…
}
语法二:
if(条件表达式){
语句…
}else{
语句…
}
语法三:
if(条件表达式){
语句…
}else if(条件表达式){
语句…
}else if(条件表达式){
语句…
}else{
语句…
}
prompt():函数可以弹出一个提示框,提示框中带有一个文本框,用户
可以在文本框中输入一段内容,该函数有一个字符串作为参数,该字符串会作为提示文字
该函数有一个返回值用来接收输入的内容,返回值是string类型

三个数比较大小:

   var a = parseInt(prompt('第一个数'));
       var b = parseInt(prompt('第二个数'));  
       var c = parseInt(prompt('第三个数'));
       console.log(typeof(a));
       if(a<b && a<c) {
           //a最小
           if(b<c) {
               console.log(a,b,c);
           }else{
               console.log(a,c,b)
           }
       }else if(b<a && b<c) {
           //b最小
           if(a<c) {
               console.log(b,a,c);
           }else{
               console.log(b,c,a);
           }
       }else{ 
            //c最小
           if(a<b){
               console.log(c,a,b);
           }else{
               console.log(c,b,a);
           }
         
       }

20.条件分支语句(switch语句)

条件分支语句
如果条件表达式的结果为true,则会从当前case处执行代码,会一直往下执行,直到遇见break语句停止。
如果条件都不符合执行default
break语句可以跳出switch语句
语法:
switch(条件表达式) {
case 表达式:
语句…
break;
case 表达式:
语句…
break;
case 表达式:
语句…
break;
default:
语句…
break;
}
if语句和switch语句功能有重复的,所以根据实际需要和个人习惯使用,但多用if语句
此语句执行时用switch的条件表达式与case后的表达式作比较,所以只有在js中可以用以下的写法:

 var score = parseInt(prompt('输入成绩'));
 switch(true) {
    case score>=60:
        console.log('合格');
        break;
    default:
        console.log('不合格');
    }

21.循环语句
(1)while循环
语法:
while(条件表达式) {
语句…
}
创建一个循环三个步骤:
1.初始化一个变量
2.在循环中设置一个条件表达式
3.定义一个更新表达式,每次非、更新初始化变量。
(2)do…while循环
语法:
do{
语句…

      }while(条件表达式);

注意:break是跳出的循环语句,而且只能结束循环语句

如果输入错误重新输入:

 while(true) {
            var grade = prompt('请输入成绩');
            if(grade<=100 && grade>=0) {
                break;//输入正确跳出while,否则执行先alert,然后再次执行while
            }
            alert('输入有效的数字');
        }

(3) for循环

      语法:
      for(初始化表达式;条件表达式;更新表达式){
          语句..
      }
      for循环中的三个部分都可以省略掉,也可以写在外面。
      如果for循不写任何表达式,只写两个;,则是个死循环会一直执行下去。慎用!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值