javascript入门(1)

JS代码编写位置:

1.标签属性中:(不方便维护,不推荐使用) 1.可以将js代码写入标签的onclick属性中  οnclick="alert("21");"     2.可以将js代码写入超链接的href属性中,当点击超链接时会执行js代码。<a href="javascript:;">点击</a>  //可以点但是点击无反应。

2.写在script标签中。<script type="text/javascript">       </script>  中,通常写在body下方。

3.写在外部js中  通过 <script type="text/javascript" src="js/jstest.js">       </script>   引入。


数据类型:

ES6 有8种:   

    String 字符串
    Number 数值
    Boolean 布尔值
    Null 空值
    Undefined 未定义
    Symbol
    BigInt 
    Object 对象

特殊的反斜线

标识符:可含有字母数字_$     但不能以数字开头

 \' 表示 '    \" 表示 "     \\表示 \     \n 换行      \t 制表符     &nbsp 空格

infinity表示正无穷,-infinity表示负无穷 , NaN表示 not a number

使用typeof检查infinity,NaN也会返回number

null表示什么都没有,表示一个空对象引用。

用 typeof 检测 null 返回是object。

你可以设置为 null 来清空对象:// 值为 null(空), 但类型为对象

undefined 是一个没有设置值的变量。

typeof 一个没有值的变量会返回 undefined

你可以设置为 undefined 来清空对象:任何变量都可以通过设置值为 undefined 来清空。 类型为 undefined.

null 和 undefined 的值相等,但类型不等。

强制类型转换

1. 强制 转为string:

toString()方法调用String函数

var a1=123;
var b1=a.toString();  //string
//方法一:调用被转换类型的toString()方法(不影响原变量,会给出返回值)

var a2=234;
var b2=String(a2);
console.log(typeof b2); //string
//方法二:调用String函数,将a转化为字符串;

 任何值和字符串相加都会先转换为字符串,再拼串;

var aa1="lbw",bb1="666";
var result=aa1+bb1;//任何值和字符串相加都会先转换为字符串,再拼串;
console.log(result);

2.强制 转为number  :

Number()方法 (若字符串有非数字或者未定义则转为NaN)    

parseInt();   作用是将参数(通常为字符串)强制转换为整数。

parseFloat();    函数可解析一个字符串,并返回一个浮点数。

var a3='22';
a3=Number(a3);
console.log(typeof a3); //number
//方法一:调用Number()函数

var a4='221.1px';
a41=parseInt(a4);     //parseInt可将字符串中有效的整数取出;
a42=parseFloat(a4);   //parseInt可将字符串中有效的整数和小数取出;
console.log(a41,a42);
//方法二:parseInt()将一个字符串转换为整数;parseFloat()将一个字符串转换为浮点数

 在js中,表示16进制数字要以0x开头,8进制要以0开头,2进制要以0b开头(有的浏览器不支持)
 可以在parseInt()中传递第二个参数来指定进制

var a51=0xff;  //16进制
var a52=070;   //8进制
var a53=0b10;  //2进制
console.log(a51,a52,a53);//255  56  2
var a54="070";
a54=parseInt(a54,8);//将其视为8进制转换
console.log(a54);//56

减法,乘法,除法则是转换为数字再运算;(可利用这一特点做隐式转换为Number) 

3.强制转换为boolean值:

数字中 和 NaN 为false,字符串中 空串 为false,其余均为 true;

 null 和 undefined为false;


与&&运算:若两值均为true或均为false,则返回后者;  若一个 false,一个true,返回flase

var a1 = 6 && 1;
console.log(a1); // 1
var a2 = 0 && NaN;
console.log(a2); // 0
var a3 = 6 && undefined;
console.log(a3); // undefined

或 || 运算:若第一个值为true,直接返回第一个值;若第一个值为false,返回第二个值.

var r1=NaN||0;
console.log(r1);//0

条件表达式(三元运算符)  条件表达式?语句1:语句2;

        条件表达式为true 执行语句1,为false 执行语句2

JavaScript 中有严格比较和类型转换比较:

  • 严格比较(例如 ===)在不允许强制转型的情况下检查两个值是否相等;
  • 抽象比较(例如 ==)在允许强制转型的情况下检查两个值是否相等。

=== 全等; !== 不全等 

JavaScript 中的作用域(scope):

在 JS中,每个函数都有自己的作用域。只有函数中的代码才能访问函数作用域内的变量。

一个作用域可以嵌套在另一个作用域内。如果一个作用域嵌套在另一个作用域内,最内部作用域内的代码可以访问另一个作用域的变量。

-在全局作用域中有一个全局对象window,它代表一个浏览器的窗口,由浏览器创建,我们可以直接使用。

-在全局作用域中,创建的变量都会作为window对象的属性保存;创建的函数都会作为window对象的方法保存

全局变量和局部变量

1.全局变量: 在代码任何位置都可以使用。

在全局作用于下声明的变量。注意:函数内部 没有声明直接赋值的变量也属于全局变量。

2.局部变量: 仅在该函数内部使用。

函数内部声明的变量。函数形参也属于局部变量。

从执行效率来看:

全局变量 在浏览器关闭时才会销毁,比较占内存资源;

局部变量 当我们程序执行完毕就会销毁,比较节约资源。

变量提升与函数提升

变量提升值只提升变量名的声明(提升无赋值);

函数提升优先级高于变量提升的优先级,函数a与变量a同时提升则为函数a。

变量的声明提前(变量提升):-使用var关键字声明的变量,会在所有代码执行之前被声明,但是赋值还是在原行。

函数的声明提前(函数提升):-使用 function 函数(){}  ,它会在所有代码执行前被创建完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值