js base

5.15js基础学习

 * 1.什么是js
 * 2.如何运行
 * 3.如何编写和调试js
 * 4.变量
 * 5.常量
 * 6.数据类型
 * 7.运算符和表达式
1.什么是js

专门编写交互的程序语言

2.如何运行

浏览器:内容排版引擎 js解释引擎

内容排版引擎:专门解析HTML和渲染css的软件

js解释引擎:专门解释,并执行js程序的软件

解释:默认从上向下,读一行,执行一行。后读到的相同内容,会覆盖先读到的

脚本:不需要预编译,边解释边执行的程序

3.如何编写和调试js

1.独立安装的js解释器中
2.调试js程序:都是在console中

4.变量

内存中存储一个数据的存储空间,再起一个名字
1.声明 var 变量名 仅声明,但暂未赋值,默认值为undefined
2.赋值 var 变量名=值 在声明同时,初始化变量的值
3.取值 console.log(变量名)

var sname = "好";
sname1 = "好1";  //未声明的变量也可赋值     强烈建议使用var声明
console.log(sname);
console.log(sname1);
//console.log(sname2);
// 未声明的变量不可使用取值    报错Uncaught ReferenceError: sname2 is not defined
5.常量

一旦初始化,值不能改变的量
const 常量名 = 值; 常量名都要用大写名称

const PI = 3.1415926;
console.log(PI);
6.数据类型

2大类:原始类型的值和引用类型的对象

原始类型: Number String Boolean undefined null

引用类型:值没有直接保存在变量本地的类型 变量中只保存指向实际数据所在位置的地址值

隐式转换:无需程序员干预,而自动完成的转换

强制转换:程序员主动调用专门函数完成的转换

//数据类型
var num = 11;
var str = "11";
var bool = true;
var und;
var nu = null;
console.log(typeof num);    //Number
console.log(typeof str);    //String
console.log(typeof bool);   //Boolean
console.log(typeof und);    //undefined
console.log(typeof nu);     //object           null 常被放在期望一个对象

//隐式转换
console.log(num+str);           //"1111"
console.log(typeof(num+str));   //string

console.log(num+bool);          //12
console.log(typeof(num+bool));  //Number

console.log(str+bool);          //11true
console.log(typeof(str+bool));   //string

//强制转换
console.log(String(num));       //"11"  万能
console.log(num.toString());    //"11"  无法转换null和undefined

console.log(Number(str));       //11
console.log(Number(bool));      //1
console.log(parseInt(str));     //11    但无法转换boolean类型

console.log(Boolean(str));      //true      除了:""   0    NaN   undefined   null -->false ;其余都为true
7.运算符和表达式

程序:人的想法在计算机中的执行步骤

算数运算符:+ - * / % ++ -- 返回值:只能是number,如果运算无效,返回NaN

%模运算(取余数):m%n : m/n,取除不尽的余数部分

关系运算:做比较,比大小 返回值:true、false

  1. 如果无法转为数字:转为NaN
  2. 如果两个都是字符串,则按位pk每个字符的unicode号

逻辑运算:多个条件(关系运算),综合得出最后的结论只可能返回true/false
&&: 读作且,程序中称为"逻辑与"
||: 读作或,程序中称为"逻辑或"
!: 读作不,程序中称为"非"

短路逻辑、位运算、赋值运算、三目运算

除数为0:js中除数可以为0,结果为: Infinity
Infinity,可参与关系运算
isFinite(num): 专门判断一个数字是否在有效范围内

eval: 专门执行字符串格式的js语句
还可计算字符串格式的表达式的值

var n = 1;
console.log(n++);   //1     返回旧值
//    console.log(++n);   //2     返回新值

var a=3;
console.log(a++ + ++a + a++); //13
            /*3  +  5  +  5 */
console.log(a);//6

var snum = 101;
console.log(snum%10);   //1

//短路运算
var n = 100;
var m = 20;
var b = n+m>100 && n-m<50;
console.log(b);     //false;

//位运算

n = n<<2;
console.log(n); //400
console.log(n.toString(2));  //转为2进制之后左移2位

//三目运算
var max = n>m ? n : m; //如果n > m 将n的值赋予 max 否则将m 赋予
console.log("max="+max);

//infinity 判断
var num1 = 1/0;
console.log(num1);    //Infinity
var finite= isFinite(num1);
console.log(finite);      //false

//eval  执行字符串语句
eval("var x=20,y=20;document.write(x+y)");  //40

你可能感兴趣的:(js base)