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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于 Swift 重要这个文档所包含的准备信息, 是关于开发的 API 和技术的。这个信息可能会改变, 根据这个文...
    无沣阅读 4,444评论 1 27
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 前面我们讲了大观园内起诗社的事情,因为恰逢秋天的白海棠正好,于是就在探春的秋爽斋结下了海棠社,后来又在一起以“菊”...
    d601ea2d8638阅读 1,702评论 0 0
  • 现在我们,时不时的喝着鸡汤。豪情万丈的我们。时不时的剑走江湖。 前几天我和我的一个大学同学聊天,虽然看不到她的脸,...
    火土土阅读 386评论 0 0