javascript值为true,而它应该为false?

javascript值为true,而它应该为false?,javascript,canvas,Javascript,Canvas,我刚刚开始了一个小项目来学习更多的Javascript,尤其是画布。我想创建一个简单的绘图应用程序,但我当时卡住了 目前,我已经设法让绘图正常工作(需要微调,但我刚刚开始),所以现在我想在代码中放置mousedown和mouseup事件 这就是我所做的: var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); var radius = 10; var drag = false;

我刚刚开始了一个小项目来学习更多的Javascript,尤其是画布。我想创建一个简单的绘图应用程序,但我当时卡住了

目前,我已经设法让绘图正常工作(需要微调,但我刚刚开始),所以现在我想在代码中放置mousedown和mouseup事件

这就是我所做的:

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

var radius = 10;
var drag = false;

canvas.width = window.innerWidth;
canvas.height = window.innerHeight; //grootte van de canvas

var putPoint = function(e){
    if(drag = true){
        context.beginPath();
        context.arc(e.offsetX, e.offsetY, radius, 0, Math.PI*2);
        context.fill();
        console.log(drag);
    }
}

var engage = function(){
    drag = true;
}

var disengage = function(){
    drag = false;
}

canvas.addEventListener('mousedown', engage);
canvas.addEventListener('mouseup', disengage);
canvas.addEventListener('mousemove', putPoint);
我已经将一个变量“drag”放入,以便在条件为真或假时进行检查。默认情况下我把它弄错了。当鼠标按下事件被触发时,函数engage必须执行其工作并使变量drag=true

当变量为true时,应激活putPoint函数以在其上绘制点

但问题是。当我启动代码时,它默认为true,而不是false。我似乎找不到问题所在,因为对我来说,一切都是应该的

希望你们能帮我看看我到底做错了什么

这是一把小提琴:


谢谢

你不仅仅是在测试,你还在分配然后测试

改变

if(drag = true){

或者更好

if (drag) {

参考上一个例子,这是一篇关于
truthy/falsey
值概念的优秀文章。

if(drag=true)
true
赋值给
drag
,然后检查它是否真实(一直如此。使用
if(drag==true)
if(drag==true)
或只使用
if(drag)
Ye it al Make sence now:D非常感谢!这只是一个打字错误,请删除您的帖子。啊,这确实是个问题。如果我现在看,这很明显。感谢您的帮助和文章!:-D@GameAlchemist要求用户删除其答案是不合适的。如果您认为答案不正确,请投反对票。如果您相信答案,请投反对票不回答这个问题,然后标记它。@GeorgeStocker:所以我不是那个不合适的人,不是那个发布“点无用回复”的人,也不是不删除“oops-i-make-a-typo”帖子的O.P.?如果你对S.O.中的垃圾级别满意,太好了:我不是。@gamealchest“点无用回复”的鱼你难道不知道什么是社区维基答案吗?顺便说一句,当OP需要一个解释和一篇文章时,它不是一个打字错误,即使它是一个简单的问题(这就是为什么我的答案是CW)。
if (drag) {