JavaScript_02

基本语法

  • js 是动态语言,动态语言基本上都是解释性语言,解释性语言基本上都是脚本语言。js 是浮点型语言(带小数点)。
  • 值类型(数据类型)
  1. 不可改变的原始值(栈数据)栈 stack
    Number,String,Boolean,undefined,null
    已经放进去的值不可改变,只会改房间编号为 null(硬盘原理)
  • Number 数字,例 var a = 123;
  • String 字符串,语言放双引号里,例 var a=”语言”,““是空串
  • Boolean 布尔数字,就两个值,false,true
  • undefined 是没有定义的,表示还没赋值,仅一个值 underfined
  • null 代表空,占位用,用空值来覆盖
    var a =10;
    var b = a;
    a = 20;
    document.write(b);
    答案:10
    原始值是我把一个值放到另一个值里面,改了第一个值,第二个值不变。
  1. 引用值(堆数据)大致上放堆 heap 里面
  • array 数组, Object, function … data,RegExp 正则
    var arr = [1,2,3,4,5,false,”abc”]; //这是数组
    例:var arr = [1];
    var arr1 = arr;
    arr.push(2);
    document.write(arr1);
    答案:arr 是 1,2。arr1 是 1,2
    引用值是把第一个值放到第二个值里面,改第一个值,第二个值也改变。
    补充:js 由值决定类型。原始值和引用值唯一的不同是赋值形式不同
    在这里插入图片描述var a = 10;var b =a;是 a 先取出 10,copy 一份放到 b 里面,改变 a 的值,b 的值是不
    变的,再把 a=20;时 b 的值还是 10,不发生改变
  • var arr = [1,2]; var arr1 =arr; arr.push(3);
    答案:这往[1,2]放 3,arr 和 arr1 都是[1,2,3]
    引用值是在栈内存里面放堆的地址,拷贝的也是地址,所以改变 arr,arr1 也变了。
  • var arr = [1,2]; var arr1 =arr; arr = [1,3]; document.write(arr1);
    答案:arr = [1,3];是新建了一个新的房间。arr1 是 1,2,现在是插入新引入值”房间”,
    会在堆里面重新申请一间房,并指向新房间。
  • js 语句基本规则
  1. 语句后面要用分号结束“”但 function test(){}for(){}if(){}后面都不用加分号
  2. js 语法错误会引发后续代码终止,但不会影响其它 js 代码块
    错误分为两种:
    1)低级错误(语法解析错误),不能写中文
    2)逻辑错误(标准错误,情有可原,错的那个执行不了)
  3. 书写格式要规范,“= + / -”两边都应该有空格

js运算符

一、运算操作符
+

  1. +”作用:数学运算、字符串链接
  2. 任何数据类型加字符串都等于字符串。
    例: var a = “a”+ true + 1; //打印 atrue1
    例: var a = 1 + “a” + 1 + 1; //打印 1a11
    例: var a = 1 + 1 + “a” + 1 + 1; //打印 2a11,从左向右运算
    例: var a = 1 + 1 + “a” +( 1 + 2); //打印 2a3

- \* /
例: var a = 0 – 1; //等于-1
var a = 2 * 1; //等于 2
var a = 0 / 0; //答案是 NaN,应该得出一个数字类型的数,但是没法表达,就用 NaN (NaN 是 Not a Number 非数,不是数,但是是数字类型)
var a = 1 / 0; //是 infinity
var a = -1 / 0; //是-infinity

%:摩尔,模,是取余数的意思。
var a =5%2; //5%2 是五除二的余数,商二余一
var a =5%1; //是五除一的余数,结果是 0
var num = 1 % 5; //意思是 1 除以 5 的余数。商 0 余 1
var a =4%6 ;//是四除六的余数,结果是 4
var a = 4; a % = 5; document.write(a); // 4
var a = 0; a % = 5; document.write(a); //0
var a = 10; a %= 2; document.write(a);//0
var a = 3; a % = 4; //4
-”,“*”,“/“,“%”,”=“,“()
优先级:”=“最弱【赋值符号优先级最低】,”()”优先级较高
“++”,“- -”,”+=“,“-=”,“/=“,“*=”,“%=”
++
var a = 10; a = a + 1; //结果 11
var a = 1;
a = a + 1;写成 a ++是一种简化形式“++”,是自身加一,再赋值给自身,a++是 a=a+1 的简化形式。
var a =10; document.write(++a ); document.write(a); //答案 11;11
是先执行++,再执行本条语句 document.write(++a)
var a =1; document.write(a ++); document.write(a); //答案 1;2。是先执行
语句(document.write(a)),再++,所以第一次打印的还是 a,第二次打印 a++后的值。
var a =10; var b=++a -1+a++; document.write(b + “ ” + a) //答案 21 12
先++a,这个时候 a=11,再-1,再加 a,b 就是 21,最后++,a 就是 12
赋值的顺序自右向左,计算的顺序自左向右(按数学来)。
var a =1; var b = a ++ + 1; document.write(b); //答案 2,先执行 var b =a+1, 再 a++
var a =1; var b = a ++ + 1; document.write(a); document.write(b); //答案 2,2
var a =1; var b = ++a + 1; document.write(a); document.write(b); //答案 2,3
var i = 1; var a = i++; //答案 a = 1; 此时 i 先将值 1 赋给 a,然后自己+1,i=2;
var b = ++i; //答案 b = 3;此时 i 先自己+1 为 3.再给 b 赋值,b=3;

- -:“- -”,是自身减一,在赋值给自身
var a = 1; var b = a-- + -- a; document.write(b); //答案 0,先执行–a;此时 a 变成0,然后第一个 a 也变成 0,那么 b = 0-- + --a
var a = 1; var b = --a + --a; document.write(b); //答案-1
var a = 1; document.write(a++); document.write(a); //答案 1;2
var a =1; document.write(++a); document.write(a); //答案 2;2
var a =1; var b = a ++ +1; document.write(b); //答案 2 a 写在后面就后运行,先计算 a+1=2 赋值给 b 后再++
var a = 1; var b= ++a + 1; document.write(a); document.write(b); //答案 2;3

+= -=
var a =10; a ++; a ++; a ++;加十个。简化写法:a +=10;也是 a = a+10;
var a =10; a += 10 + 1; //答案 21
var a = 1; a = a + 10;等于 a+=10。a++是 a +=1 的写法

/=
var a=10; a/=2; //答案 5,是除二赋给自身的意思

\*=
var a =10; a *=2; //答案:20,是乘二赋给自身的意思
%=
var a=10; a%=2; //答案:0, 10 能整除 2,余数是 0,取余,余数赋给自身。
var a=3; a%=4; //答案:3,3 除以 4,余数为 3,余数赋给自身。
var a=0; a%=4; //答案:0,0 除以 4,余数为 0,余数赋给自身。
var a = 1; a% =10; //答案:1,1 除以 10,余数为 1,余数赋给自身。

作业

  1. 写出打印结果
最后

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
就答题情况而言,第一问100%都可以回答正确,第二问大概只有50%正确率,第三问能回答正确的就不多了,第四问再正确就非常非常少了。其实此题并没有太多刁钻匪夷所思的用法,都是一些可能会遇到的场景,而大多数人但凡有1年到2年的工作经验都应该完全正确才对。
只能说有一些人太急躁太轻视了,希望大家通过此文了解js一些特性。

并祝愿大家在新的一年找工作面试中胆大心细,发挥出最好的水平,找到一份理想的工作。

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值